fix(docker): keep CUDA point releases out of the release-churn layer #53
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/cuda-image-churn"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every
latest-cudapull was fetching a ~533MiB compressed blob per release. Breaking that layer down:apt-get upgrade(libcusparse, libcusolver, libnpp, ...)/gllmbinaryThe NVIDIA runtime base ships with the CUDA apt repo enabled (only
libcublasis apt-mark held), so the scanner-drivenapt-get upgrade -yalso pulled point releases of GPU libraries gllm never links -- it uses onlylibcudartandlibcublasLt. buildah commits the final stage as a single layer, so all of it rode in the one blob that changes every release.Fix: drop
/etc/apt/sources.list.d/cuda*.listbefore the upgrade. Verified againstnvidia/cuda:13.3.0-runtime-ubuntu24.04: the upgrade shrinks to 14 small Ubuntu security packages (openssl, perl-base, gzip, ca-certificates, ...). Expected per-release pull drops to roughly 10-15MiB compressed. CUDA library updates still arrive deliberately viaCUDA_VERSIONbumps, documented in the comment.Side benefit: no more ~600MB of shadowed old CUDA libs wasted per image version on disk.
🤖 Generated with Claude Code
Automated review by pr-reviewer v0.37.0 | Safety Check | Claude Sonnet 5 | tracking id
r-61d30a-32e692This is an AI-generated review and may contain mistakes.
Status: ✅ Completed
✅ Verdict: LGTM — Minor, well-scoped Dockerfile fix with no security or runtime concerns; the only nitpick (non-forgiving rm glob) would only affect build robustness, not production behavior.
Small, targeted Dockerfile change: removes the CUDA apt repo list before
apt-get upgradeso point releases of unused CUDA libs don't get pulled into the churn layer. Logic is straightforward and matches the stated intent. One minor risk:rm /etc/apt/sources.list.d/cuda*.list(no-f) would fail the build if the glob doesn't match any file (e.g. if the base image ever changes the file naming), but this is a build-time break, easily caught by CI, not a runtime/security issue. No secrets, no unrelated files, no breaking runtime behavior — libcublas/libcudart still come from the base image as before.fix(docker): keep CUDA point releases out of the release-churn layerto fix(docker): shrink the per-release pull and stop canaries delaying the pushfix(docker): shrink the per-release pull and stop canaries delaying the pushto fix(docker): keep CUDA point releases out of the release-churn layer