-
Notifications
You must be signed in to change notification settings - Fork 106
RHOAIENG-21690: chore(Dockerfiles): augument micropipenv
with uv
for faster package installs
#968
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fb58ec0
to
44b61c4
Compare
44b61c4
to
cbe3261
Compare
cbe3261
to
dee6d41
Compare
dee6d41
to
c3456a1
Compare
micropipenv
with uv
for faster package installs
/retest jupyter-minimal-ubi9-python-3-11-on-pull-request |
c3456a1
to
825dabd
Compare
825dabd
to
b6e1f01
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda (2)
17-18
: Unpinnedmicropipenv
/uv
still undermine deterministic builds
The same concern was raised earlier: pulling latest versions during every build makes the image non-reproducible and risks breakage (see issue #1595). Either pin the versions or expose them as build args that default to pinned values. Also dropmicropipenv
entirely if it is no longer invoked later in the image.
153-155
:micropipenv
installed but never used after the switch torequirements.txt
Since you now copy onlyrequirements.txt
and rely exclusively onuv pip install
, the earliermicropipenv
installation becomes dead weight (~30 MB). Remove it to slim the image unless another stage still depends on it.
🧹 Nitpick comments (1)
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm (1)
154-160
:uv pip install
flag mix weakens hash guarantees—confirm risk acceptance.
--verify-hashes
checks hashes only for files that already have a hash entry, while letting through new (potentially malicious) files whose hashes are missing. The stronger--require-hashes
would reject such additions but is commented out in the PR description because some wheels are built at install-time on non-amd64.This trade-off is understandable, yet it rewinds part of the supply-chain benefit you’re aiming for with
uv
. Two options:
- Keep
--verify-hashes
, but split architecture-specific build requirements into a separate constraints file that is not hash-verified, allowing--require-hashes
on the main set.- Generate hashes for build-system wheels on each platform and commit them (requires CI support but restores full integrity).
Please double-check with security guidelines that the current compromise is acceptable for production images.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (35)
codeserver/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)codeserver/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)jupyter/datascience/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)jupyter/datascience/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)jupyter/minimal/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)jupyter/minimal/ubi9-python-3.11/Dockerfile.cuda
(2 hunks)jupyter/minimal/ubi9-python-3.11/Dockerfile.rocm
(2 hunks)jupyter/minimal/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)jupyter/minimal/ubi9-python-3.12/Dockerfile.cuda
(2 hunks)jupyter/minimal/ubi9-python-3.12/Dockerfile.rocm
(2 hunks)jupyter/pytorch/ubi9-python-3.11/Dockerfile.cuda
(2 hunks)jupyter/pytorch/ubi9-python-3.12/Dockerfile.cuda
(2 hunks)jupyter/rocm/pytorch/ubi9-python-3.11/Dockerfile.rocm
(2 hunks)jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
(2 hunks)jupyter/rocm/tensorflow/ubi9-python-3.11/Dockerfile.rocm
(2 hunks)jupyter/tensorflow/ubi9-python-3.11/Dockerfile.cuda
(2 hunks)jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda
(2 hunks)jupyter/trustyai/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)jupyter/trustyai/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)rstudio/c9s-python-3.11/Dockerfile.cpu
(2 hunks)rstudio/c9s-python-3.11/Dockerfile.cuda
(2 hunks)rstudio/rhel9-python-3.11/Dockerfile.cpu
(2 hunks)rstudio/rhel9-python-3.11/Dockerfile.cuda
(2 hunks)runtimes/datascience/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu
(2 hunks)runtimes/minimal/ubi9-python-3.12/Dockerfile.cpu
(2 hunks)runtimes/pytorch/ubi9-python-3.11/Dockerfile.cuda
(2 hunks)runtimes/pytorch/ubi9-python-3.12/Dockerfile.cuda
(2 hunks)runtimes/rocm-pytorch/ubi9-python-3.11/Dockerfile.rocm
(2 hunks)runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.rocm
(2 hunks)runtimes/rocm-tensorflow/ubi9-python-3.11/Dockerfile.rocm
(2 hunks)runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm
(2 hunks)runtimes/tensorflow/ubi9-python-3.11/Dockerfile.cuda
(2 hunks)runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (33)
- jupyter/pytorch/ubi9-python-3.11/Dockerfile.cuda
- runtimes/pytorch/ubi9-python-3.11/Dockerfile.cuda
- jupyter/minimal/ubi9-python-3.12/Dockerfile.rocm
- jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda
- runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu
- runtimes/rocm-tensorflow/ubi9-python-3.11/Dockerfile.rocm
- jupyter/minimal/ubi9-python-3.12/Dockerfile.cuda
- codeserver/ubi9-python-3.12/Dockerfile.cpu
- jupyter/datascience/ubi9-python-3.11/Dockerfile.cpu
- runtimes/datascience/ubi9-python-3.11/Dockerfile.cpu
- rstudio/rhel9-python-3.11/Dockerfile.cuda
- runtimes/minimal/ubi9-python-3.12/Dockerfile.cpu
- runtimes/rocm-pytorch/ubi9-python-3.11/Dockerfile.rocm
- jupyter/rocm/tensorflow/ubi9-python-3.11/Dockerfile.rocm
- jupyter/minimal/ubi9-python-3.11/Dockerfile.cpu
- jupyter/minimal/ubi9-python-3.11/Dockerfile.cuda
- codeserver/ubi9-python-3.11/Dockerfile.cpu
- jupyter/pytorch/ubi9-python-3.12/Dockerfile.cuda
- rstudio/c9s-python-3.11/Dockerfile.cpu
- runtimes/tensorflow/ubi9-python-3.11/Dockerfile.cuda
- runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm
- jupyter/trustyai/ubi9-python-3.11/Dockerfile.cpu
- rstudio/c9s-python-3.11/Dockerfile.cuda
- rstudio/rhel9-python-3.11/Dockerfile.cpu
- runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.rocm
- jupyter/datascience/ubi9-python-3.12/Dockerfile.cpu
- runtimes/pytorch/ubi9-python-3.12/Dockerfile.cuda
- runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu
- jupyter/tensorflow/ubi9-python-3.11/Dockerfile.cuda
- jupyter/trustyai/ubi9-python-3.12/Dockerfile.cpu
- jupyter/minimal/ubi9-python-3.11/Dockerfile.rocm
- jupyter/rocm/pytorch/ubi9-python-3.11/Dockerfile.rocm
- jupyter/minimal/ubi9-python-3.12/Dockerfile.cpu
🧰 Additional context used
🧠 Learnings (34)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:17-18
Timestamp: 2025-08-01T16:10:21.049Z
Learning: jiridanek requested GitHub issue creation for version pinning improvement of micropipenv and uv packages during PR #968 review. Issue #1595 was created with comprehensive problem description covering build reproducibility risks from unpinned package versions across 18 affected Dockerfiles, two solution options (direct pinning vs build arguments), implementation approach with testing requirements, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm:17-18
Timestamp: 2025-08-06T15:33:47.147Z
Learning: During PR #968 review, CodeRabbit initially incorrectly identified 1 legitimate micropipenv usage in jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda when analyzing Python 3.12 images for unused dependencies. Upon jiridanek's request for re-verification, comprehensive analysis revealed all 15 Python 3.12 Dockerfiles install micropipenv but none actually use it, making the cleanup scope 100% unnecessary installations with no exceptions to handle.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm:17-18
Timestamp: 2025-08-06T15:22:17.971Z
Learning: jiridanek requested GitHub issue creation for micropipenv removal from Python 3.12 images during PR #968 review. Analysis revealed 15 affected Dockerfiles with only 1 legitimate usage (jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda using micropipenv install --dev) while 14 images install micropipenv unnecessarily. Issue #1685 was created with comprehensive problem description covering ~238MB total waste across unused installations, detailed scope analysis, multiple solution options, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/pytorch/ubi9-python-3.12/Dockerfile.cuda:17-25
Timestamp: 2025-07-09T08:07:30.628Z
Learning: jiridanek requested GitHub issue creation for oc client installation permission problem in PyTorch CUDA runtime Dockerfile during PR #1333 review. Issue #1356 was created with comprehensive problem description covering USER 1001 permission conflicts with root-owned /opt/app-root/bin directory, detailed impact analysis of build failures and non-executable binaries, current problematic code snippet, complete solution with user switching approach, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/utils/bootstrapper.py:1-769
Timestamp: 2025-07-08T19:35:49.482Z
Learning: jiridanek requested GitHub issue creation for bootstrapper code duplication problem in runtimes/rocm-pytorch/ubi9-python-3.12/utils/bootstrapper.py during PR #1333 review. After an initial failed attempt, issue #1349 was successfully created with comprehensive problem description covering maintenance overhead and consistency risks from duplicate implementations across 5 Python 3.12 runtime environments, four solution options (symlinks, import-based, template-based, direct shared import) with pros/cons analysis, clear acceptance criteria for consolidation and maintainability, step-by-step implementation guidance, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/Dockerfile.cpu:132-134
Timestamp: 2025-07-08T19:07:58.135Z
Learning: jiridanek requested GitHub issue creation for Docker build robustness problem with rm glob patterns during PR #1306 review. Issue was created covering 11 affected Dockerfiles with fragile rm commands that fail on empty globs, comprehensive problem description, multiple solution options, acceptance criteria, implementation guidance, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-21T15:06:04.114Z
Learning: jiridanek requested GitHub issue creation for multi-platform dependency locking investigation during PR #1396 review. Issue #1423 was successfully created with comprehensive problem description covering ARM64 wheel availability but being ignored due to AMD64-only dependency locking, root cause analysis of platform-specific pipenv limitations, immediate conditional installation solution, multi-platform locking ecosystem analysis, broader affected areas investigation, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:152-158
Timestamp: 2025-08-02T10:26:52.388Z
Learning: jiridanek corrected CodeRabbit's false assessment about uv pip install --strict flag support during PR #968 review. User demonstrated that uv 0.8.0 does support the --strict flag through command line verification, contradicting CodeRabbit's analysis using uv 0.8.4 that incorrectly suggested the flag was unsupported.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:152-158
Timestamp: 2025-08-02T10:26:52.388Z
Learning: CodeRabbit made an incorrect assessment about uv pip install --strict flag support during PR #968 review, suggesting its removal when the flag is actually supported in both uv 0.8.0 and 0.8.4. jiridanek correctly demonstrated the flag's availability through command line verification, showing the importance of thorough verification and accepting corrections when evidence contradicts initial analysis.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.rocm:79-88
Timestamp: 2025-08-06T15:19:32.464Z
Learning: jiridanek corrected CodeRabbit's false assessment about uv pip install --index-strategy=unsafe-best-match flag during PR #968 review. The flag controls index selection strategy for choosing between multiple package registries (like PyPI and supplementary registries), not hash verification behavior as incorrectly suggested by CodeRabbit.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.rocm:79-88
Timestamp: 2025-08-06T15:19:32.464Z
Learning: jiridanek corrected CodeRabbit's false assessment about uv pip install --index-strategy=unsafe-best-match flag during PR #968 review. The flag controls index selection strategy for choosing between multiple package registries (like PyPI and supplementary registries), not hash verification behavior as incorrectly suggested by CodeRabbit.
Learnt from: grdryn
PR: opendatahub-io/notebooks#1320
File: rstudio/rhel9-python-3.11/Dockerfile.cuda:34-35
Timestamp: 2025-07-04T10:41:13.061Z
Learning: In the opendatahub-io/notebooks repository, when adapting NVIDIA CUDA Dockerfiles, the project intentionally maintains consistency with upstream NVIDIA patterns even when it might involve potential risks like empty variable expansions in package installation commands. This is considered acceptable because the containers only run on RHEL 9 with known yum/dnf behavior, and upstream consistency is prioritized over defensive coding practices.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/usr/share/container-scripts/nginx/common.sh:1-3
Timestamp: 2025-07-03T12:07:19.365Z
Learning: jiridanek consistently requests GitHub issue creation for technical improvements identified during code reviews in opendatahub-io/notebooks, ensuring systematic tracking of code quality enhancements like shell script portability issues with comprehensive descriptions, solution options, and acceptance criteria.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:138-140
Timestamp: 2025-08-01T16:07:58.701Z
Learning: jiridanek prefers architectural solutions that eliminate problems entirely rather than just fixing immediate technical issues. When presented with a pipeline safety concern about micropipenv requirements generation, he suggested removing micropipenv from the build process altogether by using pre-committed requirements.txt files, demonstrating preference for simplification and deterministic builds over complex workarounds.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1600
File: Makefile:0-0
Timestamp: 2025-08-02T08:49:03.735Z
Learning: jiridanek decided to eliminate '+' characters entirely from Makefile target names during PR #1600 review instead of implementing complex substitution workarounds, demonstrating his consistent preference for architectural solutions that eliminate problems at the source rather than adding complexity to handle edge cases.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/utils/process.sh:17-19
Timestamp: 2025-07-03T14:00:00.909Z
Learning: jiridanek efficiently identifies when CodeRabbit review suggestions are already covered by existing comprehensive issues, demonstrating excellent issue management and avoiding duplicate tracking of the same improvements across multiple locations.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1151
File: jupyter/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:31-34
Timestamp: 2025-07-01T07:03:05.385Z
Learning: jiridanek demonstrates excellent pattern recognition for identifying duplicated code issues across the opendatahub-io/notebooks repository. When spotting a potential problem in test notebooks, he correctly assesses that such patterns are likely replicated across multiple similar files rather than being isolated incidents, leading to more effective systematic solutions.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:56-66
Timestamp: 2025-07-02T18:19:49.397Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues for security concerns raised during PR reviews in opendatahub-io/notebooks, ensuring systematic tracking and resolution of supply-chain security improvements like GPG signature verification for package repositories.
📚 Learning: during pr #968 review, coderabbit initially incorrectly identified 1 legitimate micropipenv usage in...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm:17-18
Timestamp: 2025-08-06T15:33:47.147Z
Learning: During PR #968 review, CodeRabbit initially incorrectly identified 1 legitimate micropipenv usage in jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda when analyzing Python 3.12 images for unused dependencies. Upon jiridanek's request for re-verification, comprehensive analysis revealed all 15 Python 3.12 Dockerfiles install micropipenv but none actually use it, making the cleanup scope 100% unnecessary installations with no exceptions to handle.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: in the opendatahub-io/notebooks repository, tensorflow packages with `extras = ["and-cuda"]` can cau...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: In the opendatahub-io/notebooks repository, TensorFlow packages with `extras = ["and-cuda"]` can cause build conflicts on macOS due to platform-specific CUDA packages. When the Dockerfile installs CUDA system-wide, removing the extras and letting TensorFlow find CUDA at runtime resolves these conflicts.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for micropipenv removal from python 3.12 images during pr ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Dockerfile.rocm:17-18
Timestamp: 2025-08-06T15:22:17.971Z
Learning: jiridanek requested GitHub issue creation for micropipenv removal from Python 3.12 images during PR #968 review. Analysis revealed 15 affected Dockerfiles with only 1 legitimate usage (jupyter/tensorflow/ubi9-python-3.12/Dockerfile.cuda using micropipenv install --dev) while 14 images install micropipenv unnecessarily. Issue #1685 was created with comprehensive problem description covering ~238MB total waste across unused installations, detailed scope analysis, multiple solution options, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: in the opendatahub-io/notebooks repository, when adapting nvidia cuda dockerfiles, the project inten...
Learnt from: grdryn
PR: opendatahub-io/notebooks#1320
File: rstudio/rhel9-python-3.11/Dockerfile.cuda:34-35
Timestamp: 2025-07-04T10:41:13.061Z
Learning: In the opendatahub-io/notebooks repository, when adapting NVIDIA CUDA Dockerfiles, the project intentionally maintains consistency with upstream NVIDIA patterns even when it might involve potential risks like empty variable expansions in package installation commands. This is considered acceptable because the containers only run on RHEL 9 with known yum/dnf behavior, and upstream consistency is prioritized over defensive coding practices.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: the tensorflow rocm python 3.12 compatibility issue in opendatahub-io/notebooks pr #1259 was caused ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: in opendatahub-io/notebooks, python 3.12-based images (e.g., runtime-cuda-pytorch-ubi9-python-3.12) ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:54:28.202Z
Learning: In opendatahub-io/notebooks, Python 3.12-based images (e.g., runtime-cuda-pytorch-ubi9-python-3.12) may fail container runtime tests with "libcrypt.so.1 => not found" for MySQL SASL2 plugin libraries if `libxcrypt-compat` is missing. The solution is to install `libxcrypt-compat` in the Dockerfile.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: the python 3.11 infrastructure for rocm tensorflow images in opendatahub-io/notebooks is already pro...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: The Python 3.11 infrastructure for ROCm TensorFlow images in opendatahub-io/notebooks is already properly configured in the Makefile with both BASE_DIRS entries for Pipfile lock renewals and all-images targets for CI builds, requiring only commenting out the corresponding Python 3.12 entries when downgrading due to wheel availability issues.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: grdryn corrected coderabbit's false assessment about cuda companion package wheel availability durin...
Learnt from: grdryn
PR: opendatahub-io/notebooks#1396
File: jupyter/tensorflow/ubi9-python-3.12/Pipfile:13-14
Timestamp: 2025-07-16T00:17:10.313Z
Learning: grdryn corrected CodeRabbit's false assessment about CUDA companion package wheel availability during PR #1396 review. The original analysis incorrectly checked all package releases instead of the specific versions that would be installed with tensorflow[and-cuda]~=2.19.0. The actual versions (nvidia-cudnn-cu12/9.3.0.75, nvidia-cuda-runtime-cu12/12.5.82, nvidia-cublas-cu12/12.5.3.2) do have aarch64 wheels available on PyPI, making the and-cuda extra compatible with arm64 builds.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for oc client installation permission problem in pytorch c...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/pytorch/ubi9-python-3.12/Dockerfile.cuda:17-25
Timestamp: 2025-07-09T08:07:30.628Z
Learning: jiridanek requested GitHub issue creation for oc client installation permission problem in PyTorch CUDA runtime Dockerfile during PR #1333 review. Issue #1356 was created with comprehensive problem description covering USER 1001 permission conflicts with root-owned /opt/app-root/bin directory, detailed impact analysis of build failures and non-executable binaries, current problematic code snippet, complete solution with user switching approach, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatah...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for version pinning improvement of micropipenv and uv pack...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:17-18
Timestamp: 2025-08-01T16:10:21.049Z
Learning: jiridanek requested GitHub issue creation for version pinning improvement of micropipenv and uv packages during PR #968 review. Issue #1595 was created with comprehensive problem description covering build reproducibility risks from unpinned package versions across 18 affected Dockerfiles, two solution options (direct pinning vs build arguments), implementation approach with testing requirements, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek directs base image pinning security concerns to existing comprehensive issue #1242 "improv...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/Dockerfile.cpu:4-4
Timestamp: 2025-07-04T05:49:10.314Z
Learning: jiridanek directs base image pinning security concerns to existing comprehensive issue #1242 "Improve Docker FROM image versioning by avoiding :latest tags" rather than addressing them in individual PRs, continuing the established pattern of systematic security and quality tracking in opendatahub-io/notebooks.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for misleading cuda prefix in trustyai image tags during p...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review, affecting both Python 3.11 and 3.12 versions. Issue #1338 was created with comprehensive problem description covering both affected images, repository pattern analysis comparing correct vs incorrect naming conventions, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek prefers architectural solutions that eliminate problems entirely rather than just fixing i...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:138-140
Timestamp: 2025-08-01T16:07:58.701Z
Learning: jiridanek prefers architectural solutions that eliminate problems entirely rather than just fixing immediate technical issues. When presented with a pipeline safety concern about micropipenv requirements generation, he suggested removing micropipenv from the build process altogether by using pre-committed requirements.txt files, demonstrating preference for simplification and deterministic builds over complex workarounds.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for jupyter-client dependency pinning inconsistency during...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for runtime detection improvement of python site-packages ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: coderabbit made an incorrect assessment about uv pip install --strict flag support during pr #968 re...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:152-158
Timestamp: 2025-08-02T10:26:52.388Z
Learning: CodeRabbit made an incorrect assessment about uv pip install --strict flag support during PR #968 review, suggesting its removal when the flag is actually supported in both uv 0.8.0 and 0.8.4. jiridanek correctly demonstrated the flag's availability through command line verification, showing the importance of thorough verification and accepting corrections when evidence contradicts initial analysis.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek corrected coderabbit's false assessment about uv pip install --strict flag support during ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:152-158
Timestamp: 2025-08-02T10:26:52.388Z
Learning: jiridanek corrected CodeRabbit's false assessment about uv pip install --strict flag support during PR #968 review. User demonstrated that uv 0.8.0 does support the --strict flag through command line verification, contradicting CodeRabbit's analysis using uv 0.8.4 that incorrectly suggested the flag was unsupported.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek corrected coderabbit's false assessment about uv pip install --index-strategy=unsafe-best-...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.rocm:79-88
Timestamp: 2025-08-06T15:19:32.464Z
Learning: jiridanek corrected CodeRabbit's false assessment about uv pip install --index-strategy=unsafe-best-match flag during PR #968 review. The flag controls index selection strategy for choosing between multiple package registries (like PyPI and supplementary registries), not hash verification behavior as incorrectly suggested by CodeRabbit.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding pipfiles durin...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for multi-platform dependency locking investigation during...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-21T15:06:04.114Z
Learning: jiridanek requested GitHub issue creation for multi-platform dependency locking investigation during PR #1396 review. Issue #1423 was successfully created with comprehensive problem description covering ARM64 wheel availability but being ignored due to AMD64-only dependency locking, root cause analysis of platform-specific pipenv limitations, immediate conditional installation solution, multi-platform locking ecosystem analysis, broader affected areas investigation, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for bootstrapper code duplication problem in runtimes/rocm...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/utils/bootstrapper.py:1-769
Timestamp: 2025-07-08T19:35:49.482Z
Learning: jiridanek requested GitHub issue creation for bootstrapper code duplication problem in runtimes/rocm-pytorch/ubi9-python-3.12/utils/bootstrapper.py during PR #1333 review. After an initial failed attempt, issue #1349 was successfully created with comprehensive problem description covering maintenance overhead and consistency risks from duplicate implementations across 5 Python 3.12 runtime environments, four solution options (symlinks, import-based, template-based, direct shared import) with pros/cons analysis, clear acceptance criteria for consolidation and maintainability, step-by-step implementation guidance, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for misleading cuda prefix in trustyai image tags during p...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review. Issue was created with comprehensive problem description covering both Python 3.11 and 3.12 versions, repository pattern analysis showing correct vs incorrect naming, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: jiridanek requested github issue creation for mssql repo file hardcoding problem during pr #1320 rev...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1320
File: jupyter/pytorch/ubi9-python-3.12/Dockerfile.cuda:65-66
Timestamp: 2025-07-09T12:31:02.033Z
Learning: jiridanek requested GitHub issue creation for MSSQL repo file hardcoding problem during PR #1320 review. Issue #1363 was created and updated with comprehensive problem description covering hardcoded x86_64 MSSQL repo files breaking multi-architecture builds across 10 affected Dockerfiles (including datascience, CUDA, ROCm, and TrustyAI variants), detailed root cause analysis, three solution options with code examples, clear acceptance criteria for all image types, implementation guidance following established multi-architecture patterns, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: in the opendatahub-io/notebooks repository, issue #1241 "security: add checksum verification for dow...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:34-37
Timestamp: 2025-07-02T18:19:23.024Z
Learning: In the opendatahub-io/notebooks repository, issue #1241 "Security: Add checksum verification for downloaded binaries in Python 3.12 images" covers the security concern about verifying downloaded binaries including the oc client. Red Hat does not provide signed RPM packages for the OpenShift CLI (oc) in UBI9 official repositories, making manual binary download with checksum verification the recommended approach.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for passwd template validation in codeserver/ubi9-python-3...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/opt/app-root/etc/passwd.template:14-14
Timestamp: 2025-07-03T16:28:55.757Z
Learning: jiridanek requested GitHub issue creation for passwd template validation in codeserver/ubi9-python-3.12/nginx/root/opt/app-root/etc/passwd.template during PR #1269 review. Issue #1318 was created with comprehensive analysis of nss_wrapper approach advantages over OpenShift's native user management, including consistent user identity, application compatibility, and debugging benefits. The current approach works with OpenShift's random UID assignment by dynamically setting USER_ID and GROUP_ID to actual runtime values while providing enhanced user attributes through nss_wrapper.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek identified that arm64 wheels for h5py 3.14.0 are available on pypi but being ignored due t...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-20T20:47:36.509Z
Learning: jiridanek identified that ARM64 wheels for h5py 3.14.0 are available on PyPI but being ignored due to AMD64-only dependency locking with --platform=linux/amd64. This causes unnecessary hdf5-devel package installation in ARM64 TensorFlow images when the ARM64 wheel h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl could be used instead. The Pipfile.lock only contains 2 hashes for h5py, confirming limited platform consideration during lock generation.
Applied to files:
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda
📚 Learning: in the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytor...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-16T11:32:09.203Z
Learning: In the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytorch/ubi9-python-3.11/kustomize/base/kustomization.yaml` file that causes rocm runtime tests to fail with "no such file or directory" error. This is tracked in JIRA RHOAIENG-22044 and was intended to be fixed in PR #1015.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide python 3.12 wheels (cp...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide Python 3.12 wheels (cp312) on PyPI, causing Pipfile lock failures when attempting to create Python 3.12-based ROCm TensorFlow notebook images in opendatahub-io/notebooks.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for tensorflow_rocm python 3.12 compatibility problem duri...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-09T08:07:24.937Z
Learning: jiridanek requested GitHub issue creation for tensorflow_rocm Python 3.12 compatibility problem during PR #1333 review. Issue #1354 was successfully created with comprehensive problem description covering missing cp312 wheels causing build failures, three solution options (upstream TensorFlow, Python 3.11 only, custom build), clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: jiridanek requested github issue creation for two nitpicks during pr #1588 review: comment wording i...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: in the opendatahub-io/notebooks repository, mounting emptydir volumes over /opt/app-root/src is inte...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1230
File: jupyter/pytorch/ubi9-python-3.12/kustomize/components/accelerator/pod-patch.yaml:11-22
Timestamp: 2025-06-30T14:35:34.805Z
Learning: In the opendatahub-io/notebooks repository, mounting emptyDir volumes over /opt/app-root/src is intentional behavior that matches production deployment patterns where odh-dashboard mounts empty PVCs at this location (the $HOME directory). This mounting is expected to hide base image content.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
📚 Learning: current practice for runtime-images json files in opendatahub-io/notebooks: all runtime image config...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1519
File: jupyter/pytorch+llmcompressor/ubi9-python-3.11/runtime-images/llmcompressor-pytorch-ubi9-py311.json:2-9
Timestamp: 2025-07-29T15:56:20.036Z
Learning: Current practice for runtime-images JSON files in opendatahub-io/notebooks: All runtime image configurations use SHA256 digest pinning (format: `sha256:<digest>`) instead of mutable tags for immutability, use `quay.io/opendatahub/workbench-images` registry, include `schema_name: "runtime-image"` field, and follow consistent structure as seen in existing files like datascience-ubi9-py311.json, pytorch-ubi9-py311.json, etc.
Applied to files:
jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
🔇 Additional comments (1)
runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda (1)
158-161
: Comment / flag mismatch & flag validity need confirmation
The explanatory comment mentions--require-hashes
, while the actual command uses--verify-hashes
. Please align the documentation with the command.Additionally, double-check that
uv pip install
v0.8.x you pull supports all of:
--verify-hashes --compile-bytecode --index-strategy
in combination with--no-deps
.
Any flag drift in futureuv
releases will break the build because versions are unpinned (see Line 17).
# Install micropipenv and uv to deploy packages from requirements.txt | ||
RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Pin micropipenv
and uv
to deterministic versions (and reconsider the need for micropipenv
here).
Both tools are installed un-versioned. This undermines build reproducibility and can silently break images when a new release introduces behavioural or CLI changes (we already had multiple incidents in this repo, see issue #1595). In addition, this image no longer uses micropipenv
at runtime—only uv
—so pulling in micropipenv
inflates the image by ~15 MiB and increases the attack surface.
Recommended patch:
-# Install micropipenv and uv to deploy packages from requirements.txt
-RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv"
+# Install uv (micropipenv kept only if really required elsewhere)
+ARG UV_VERSION=0.8.0
+# ARG MICROPIPENV_VERSION=0.2.5 # uncomment if still needed
+RUN pip install --no-cache-dir --upgrade \
+ "uv==${UV_VERSION}"
+ # "micropipenv[toml]==${MICROPIPENV_VERSION}"
If micropipenv
is still required in derived images, please pin it as well; otherwise drop it completely and close out issue #1685’s scope for this file.
🏁 Script executed:
#!/usr/bin/env bash
# Show the pip install snippet in the target Dockerfile for context
rg -n -C2 'pip install' jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
# Search for any subsequent micropipenv usage or invocation in this Dockerfile
rg -n 'micropipenv ' jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm
Length of output: 989
🏁 Script executed:
#!/usr/bin/env bash
# Search for UV_VERSION usage across the repository to find existing pin examples
rg -n 'UV_VERSION' -n .
Length of output: 23
Pin uv and remove unused micropipenv for reproducible builds
micropipenv isn’t invoked later in this image, so it can be dropped to shrink the footprint and reduce the attack surface. Meanwhile, uv should be pinned via an ARG to avoid unpredictable upgrades.
• Remove the existing pip install of micropipenv and uv
• Add ARG UV_VERSION=0.8.0
and install only uv
• Optionally declare ARG MICROPIPENV_VERSION
if micropipenv is truly needed downstream
-# Install micropipenv and uv to deploy packages from requirements.txt
-RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv"
+# Install uv only (micropipenv removed as unused)
+ARG UV_VERSION=0.8.0
+# ARG MICROPIPENV_VERSION=0.2.5 # uncomment & pin if required by derived images
+RUN pip install --no-cache-dir --upgrade "uv==${UV_VERSION}"
Once micropipenv is removed here, you can close out issue #1685 for this file.
🤖 Prompt for AI Agents
In jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.rocm at lines 30-31, remove
the pip install of micropipenv and uv, add an ARG UV_VERSION=0.8.0, and update
the pip install command to install only uv pinned to the UV_VERSION. Optionally
add ARG MICROPIPENV_VERSION if micropipenv is needed later. This will reduce
image size and ensure reproducible builds.
@jiridanek: The following tests failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
/kfbuild odh-workbench-jupyter-minimal-cuda-py311-ubi9-on-pull-request |
/kfbuild odh-workbench-jupyter-datascience-cpu-py311-ubi9-on-pull-request |
/kfbuild odh-pipeline-runtime-tensorflow-cuda-py311-ubi9-on-pull-request |
/kfbuild odh-workbench-jupyter-pytorch-cuda-py312-ubi9-on-pull-request |
/kfbuild odh-pipeline-runtime-tensorflow-cuda-py311-ubi9-on-pull-request |
/kfbuild odh-workbench-jupyter-minimal-cuda-py311-ubi9-on-pull-request |
@coderabbitai please investigate the three |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chainI'll investigate the failed ci/prow/ checks for this PR to determine if they're known issues or require new GitHub issues for tracking. 🏁 Script executed:
Length of output: 31703 I can see there are three specific ci/prow/ failures that need investigation. Let me examine each one in detail: 🏁 Script executed:
Length of output: 1205 🏁 Script executed:
Length of output: 10023 🏁 Script executed:
Length of output: 3792 🏁 Script executed:
Length of output: 5654 Based on my analysis, I can provide you with a comprehensive assessment of the three failed ci/prow/ checks. Let me examine the key findings and provide recommendations. @jiridanek Based on my investigation of the three failed ci/prow/ checks, here's my analysis: Summary of Failed ChecksThe three failures are:
Analysis: These Are Known IssuesGood news: These failures are known infrastructure issues that are already being tracked and are not related to your PR changes. Here's the evidence: Existing GitHub Issues Already Track These Problems:
Confirmed ContextYour earlier comment mentioned these failures are related to:
This confirms these are systemic infrastructure issues, not caused by the micropipenv→uv package installation changes in this PR. Root Cause AnalysisThe failures appear to be infrastructure-related problems including:
RecommendationNo new GitHub issues need to be created - these problems are already properly tracked in the existing issues mentioned above. The failures are unrelated to your PR's core changes (switching from Your PR changes are low-risk and affect only the package installation method, not the runtime behavior or e2e test functionality itself. 🧠 Learnings used
|
Thanks Jiri, this is a great enhancement for time build as well as for the size! 🚀 /lgtm |
https://issues.redhat.com/browse/RHOAIENG-21690
This change depends upon
/opt/app-root
ownership and permissions change caused by a DockerfileCOPY
#986Description
In our Dockerfile builds, micropipenv is used to read Pipfile.lock and run pip install to install everything in there.
it works by first creating a temporary requirement.txt with hashes, and then it runs pip install -r to install from that generated file
In enhancement
we added generating requirements.txt with hashes and committing them into our repository directly. That means we now can install from the requirements.txt without needing micropipenv. Turns out that uv is very fast requirements.txt installer that can be a drop-in replacement https://astral.sh/blog/uv
How Has This Been Tested?
This change still keeps micropipenv around, it uses it to generate requirements.txt, and then it uses uv to install the requirements.
Checking the install logs, it still prints the desirable warning
Checking (comparing) image sizes
after also adding
--compile-bytecode
Merge criteria:
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Refactor
uv pip install
with strict flags, enhancing dependency management and hash verification.Style