Version tags do not guarantee reproducible base images
Source references: 1The Skill claims a tag such as `python:3.11-slim` ensures reproducible builds, but container tags can normally be moved to different images. It does not require pinning an immutable image digest.
The same Dockerfile may pull different code and system packages over time. If an upstream tag is mistakenly changed or its supply chain is compromised, builds could also execute unexpected base-image content.
The guidance says a tag such as `python:3.11-slim` “ensure[s] reproducible builds,” but such tags are not immutable identifiers: the publisher can update the image they reference, causing the same Dockerfile to fetch different content. If relied upon for supply-chain or vulnerability auditing, builds may change without a Dockerfile change. The user can ask the author to require digest pinning and clarify that tags only constrain versions.
- Start with official, minimal base images when possible- Specify exact version tags to ensure reproducible builds (e.g., `python:3.11-slim` not just `python`)- Consider distroless images for runtime stages where appropriate