Dockerfile - Upgrade bundled Docker to 29.7.2 in cuda13.0 - #845
Draft
gusui-msft wants to merge 2 commits into
Draft
Dockerfile - Upgrade bundled Docker to 29.7.2 in cuda13.0#845gusui-msft wants to merge 2 commits into
gusui-msft wants to merge 2 commits into
Conversation
5 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the CUDA 13.0 container image definition to use a newer Docker static distribution, aiming to remove critical CVEs stemming from compiled-in Go dependencies in the bundled Docker binaries.
Changes:
- Bump the pinned Docker static bundle version from
20.10.8to29.7.2. - Update the Docker version noted in the Dockerfile header comment to match the new pinned version.
Suppressed comments (1)
dockerfile/cuda13.0.dockerfile:74
- The Docker tarball is downloaded and extracted without any integrity verification. Since this PR is motivated by supply-chain CVEs, it would be safer to also verify the downloaded artifact against Docker’s published SHA256 before extracting it.
ENV DOCKER_VERSION=29.7.2
RUN TARGETARCH_HW=$(uname -m) && \
wget -q https://download.docker.com/linux/static/stable/${TARGETARCH_HW}/docker-${DOCKER_VERSION}.tgz -O docker.tgz && \
tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ && \
rm docker.tgz
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #845 +/- ##
=======================================
Coverage 86.02% 86.02%
=======================================
Files 103 103
Lines 7950 7950
=======================================
Hits 6839 6839
Misses 1111 1111
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The bundled Docker static distribution is pinned at
20.10.8, which was built with Go 1.16.6. A Trivy 0.72.0 scan ofsuperbench.azurecr.io/internal/hpc:main-cuda13.0(2026-07-15) reports 40 Critical occurrences against the eight binaries this Dockerfile unpacks into/usr/local/bin/. That is 69% of the 58 Critical findings in the image, and the largest single source of Critical findings we own.These are compiled-in Go dependencies, not installed packages, so they cannot be fixed with
aptorpip. The bundle itself has to be replaced.Docker
29.7.2(released 2026-08-05) is built with Go 1.26.5 and carries gRPCv1.82.1, which clears every CVE reported against this bundle:stdlib1.24.13, 1.25.7, 1.26.0-rc.3go1.26.5stdlib1.16.14, 1.17.7go1.26.5stdlib1.19.8, 1.20.3go1.26.5stdlib1.19.9, 1.20.4go1.26.5stdlib1.21.11, 1.22.4go1.26.5Major Revision
DOCKER_VERSIONfrom20.10.8to29.7.2indockerfile/cuda13.0.dockerfile.Minor Revision
Verification done before opening
Both architecture tarballs were downloaded from
download.docker.com/linux/static/stable/and inspected:x86_64/docker-29.7.2.tgzandaarch64/docker-29.7.2.tgzboth return 200.${TARGETARCH_HW}already resolves correctly for both.go1.26.5, on both architectures.dockerdembedsgoogle.golang.org/grpc v1.82.1.Docker version 29.7.2, build a7dcaa6.Host compatibility
SuperBench only uses the Docker client against the host daemon socket (
monitor.py,docker_base.py,runner.py,system_info.py, anddeploy.yaml, which mounts/var/run/docker.sock). There is no reference todockerd,containerd,runc,ctr, ordocker-proxyanywhere in the tree.Docker
29.3.0lowered the minimum daemon API version from v1.44 back to v1.40 (Docker 19.03), so the newer client still talks to older host daemons.docker login --username/--passwordand every subcommand we invoke are still present in 29.7.2.One behavioural note for reviewers: the v1
containerd-shimbinary no longer ships in the 29.x bundle. Nothing in this repository references it.Draft, pending
cuda13.0image builds on arm64 and amd64docker --versioninside the built image reports 29.7.2Not in this PR
rocm6.3.x.dockerfile(Docker27.5.1, 8 Critical), which is a separate PR because it is a different vendor image, different runner, and different reviewers.cuda12.9andcuda11.1.1are also built by CI and still carry20.10.8. They were not scanned, but they install the same bundle. Happy to extend this PR to them if reviewers prefer.dockerclient instead of the full bundle. That would drop 7 unused binaries and ~181 MB, but it changes image contents rather than a version string, so it is left as a follow-up.dockerfile/*.dockerfilehere, so it belongs in one change across all of them rather than only this one.linux-libc-dev,jupyter_server, Nsight), which are handled by a CUDA 13.3 base upgrade.