Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Versioning strategy

Tag format

ghcr.io/driftsys/dock:{image}-{variant}-{version}
  • {image}core, rust, deno, node, python, polyglot
  • {variant} — omitted for Alpine (default); -debian for the Debian variant
  • {version} — semantic version tag, e.g. v1.2.3

Examples

ghcr.io/driftsys/dock:core           # latest Alpine core
ghcr.io/driftsys/dock:core-v1.2.3   # pinned Alpine core
ghcr.io/driftsys/dock:rust-debian    # latest Debian rust

Floating tags

Floating tags (:core, :rust, …) always point to the latest release. Use them in prototyping; pin to a version tag in production.

Semantic versioning

Releases follow Semantic Versioning:

ChangeBump
Breaking change (tool removed, API changed)major
New tool added, runtime upgrademinor
Bug fix, security patchpatch

Runtime pinning

Runtime versions are recorded in /etc/dock/manifest.json inside each image — not in the image tag. Inspect them with:

docker run --rm ghcr.io/driftsys/dock:rust \
  jq . /etc/dock/manifest.json

To pin a specific runtime version, use the --build-arg override at build time (see extending.md).

Rebuild strategy

Images are rebuilt on every release tag (v*). The OS base (alpine:3.21, debian:bookworm-slim) is resolved at build time. All installed packages reflect the state of the package index at release time.

Security patches to the base OS are incorporated by cutting a new release. Dependabot is configured to notify when referenced base images have known CVEs.