Summary
Migrate all production container base images from Debian/Ubuntu upstream to nvcr.io/nvidia/base/ubuntu:noble-20251013 (Ubuntu 24.04 Noble). This standardizes on NVIDIA's hardened base image across all our containers.
Motivation
- Standardize on a single, NVIDIA-maintained base image for supply chain consistency
- Align with NVIDIA container security and compliance requirements
- Ubuntu Noble (24.04) is LTS and provides a modern, well-supported foundation
Scope
The following Dockerfiles need their runtime/final stages migrated:
| Dockerfile |
Current Base (runtime) |
Change Required |
deploy/docker/Dockerfile.ci |
ubuntu:24.04 |
Replace with nvcr.io/nvidia/base/ubuntu:noble-20251013 |
deploy/docker/Dockerfile.server |
debian:bookworm-20260223-slim |
Replace runtime stage with nvcr.io/nvidia/base/ubuntu:noble-20251013 |
deploy/docker/sandbox/Dockerfile.base |
python:3.12.13-slim-bookworm |
Replace base stage with nvcr.io/nvidia/base/ubuntu:noble-20251013 + manually install Python |
deploy/docker/Dockerfile.cluster |
rancher/k3s:v1.35.2-k3s1 |
Multistage build: extract k3s artifacts from rancher image, run on nvidia base |
Out of Scope
- Builder stages (
rust:1.88-slim, python:*-slim for wheel building, crazymax/osxcross) — these are build-time only and don't ship
scratch stages (wheel output stages) — empty base, nothing to migrate
- Example Dockerfiles (
examples/) — not production images
Dockerfile.nvidia — inherits from sandbox base, will automatically pick up the change
- macOS cross-compilation Dockerfiles — build tooling only
Implementation Notes
Dockerfile.cluster (multistage approach)
The current image is FROM rancher/k3s (Alpine-based). To move to the nvidia base:
- Use
rancher/k3s as a build stage to extract k3s binaries and supporting files
- Use
nvcr.io/nvidia/base/ubuntu:noble-20251013 as the final runtime stage
- Copy k3s artifacts (binaries, scripts, etc.) from the rancher stage
- Ensure cgroup, iptables, and other k3s runtime dependencies are installed on Ubuntu
Dockerfile.base (sandbox)
The current image uses python:3.12.13-slim-bookworm for the runtime base. To move to nvidia base:
- Install Python 3.12 from Ubuntu's deadsnakes PPA or build from source
- Ensure pip/venv support is available
- Verify all apt packages (iproute2, dnsutils, etc.) are available in Ubuntu repos
- Update NodeSource setup for Ubuntu Noble
Dockerfile.server
Straightforward swap from debian:bookworm-slim to nvidia base. Only needs ca-certificates.
Dockerfile.ci
Already on ubuntu:24.04 — direct swap to nvidia base. All apt packages should be compatible.
Acceptance Criteria
Summary
Migrate all production container base images from Debian/Ubuntu upstream to
nvcr.io/nvidia/base/ubuntu:noble-20251013(Ubuntu 24.04 Noble). This standardizes on NVIDIA's hardened base image across all our containers.Motivation
Scope
The following Dockerfiles need their runtime/final stages migrated:
deploy/docker/Dockerfile.ciubuntu:24.04nvcr.io/nvidia/base/ubuntu:noble-20251013deploy/docker/Dockerfile.serverdebian:bookworm-20260223-slimnvcr.io/nvidia/base/ubuntu:noble-20251013deploy/docker/sandbox/Dockerfile.basepython:3.12.13-slim-bookwormbasestage withnvcr.io/nvidia/base/ubuntu:noble-20251013+ manually install Pythondeploy/docker/Dockerfile.clusterrancher/k3s:v1.35.2-k3s1Out of Scope
rust:1.88-slim,python:*-slimfor wheel building,crazymax/osxcross) — these are build-time only and don't shipscratchstages (wheel output stages) — empty base, nothing to migrateexamples/) — not production imagesDockerfile.nvidia— inherits from sandbox base, will automatically pick up the changeImplementation Notes
Dockerfile.cluster (multistage approach)
The current image is
FROM rancher/k3s(Alpine-based). To move to the nvidia base:rancher/k3sas a build stage to extract k3s binaries and supporting filesnvcr.io/nvidia/base/ubuntu:noble-20251013as the final runtime stageDockerfile.base (sandbox)
The current image uses
python:3.12.13-slim-bookwormfor the runtime base. To move to nvidia base:Dockerfile.server
Straightforward swap from
debian:bookworm-slimto nvidia base. Only needsca-certificates.Dockerfile.ci
Already on
ubuntu:24.04— direct swap to nvidia base. All apt packages should be compatible.Acceptance Criteria
nvcr.io/nvidia/base/ubuntu:noble-20251013as their runtime basemise run docker:buildsucceeds for all affected images