static
Runtime · Runtime base · standard · vlatest
Tiny static base for self-contained binaries (Go, Rust). Nonroot, no shell, no package manager. The only image tagged :latest.
Use it as a base image
Reference it in the FROM line of your Dockerfile. Nonroot, read-only
root filesystem, built for amd64 and arm64.
FROM ghcr.io/quenchworks/images/static:latest Or pull it directly
docker pull ghcr.io/quenchworks/images/static:latest - Version line
- latest
- Latest line
- latest
- Architectures
- amd64, arm64
- Runs as
- nonroot (uid 1001)
- Root filesystem
- read-only
- License
- MIT
Verify the supply chain
This image is cosign-signed and carries an SPDX SBOM and a SLSA build-provenance attestation on the same digest. Check all three before you build on it:
# 1. signature — built and signed by QuenchWorks CI
cosign verify ghcr.io/quenchworks/images/static:latest \
--certificate-identity-regexp 'https://github.com/quenchworks/.+' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
# 2. SLSA build provenance — which workflow built it, from what
gh attestation verify oci://ghcr.io/quenchworks/images/static:latest --owner quenchworks
# 3. SPDX SBOM — the package inventory
gh attestation verify oci://ghcr.io/quenchworks/images/static:latest --owner quenchworks \
--predicate-type https://spdx.dev/Document See the SBOM & provenance guide for reading the SBOM and using these checks in CI.
Best-practice Dockerfile for latest
static is a runtime base you copy a built artifact onto, not something you install into. Here a Go binary is compiled in a build stage and the static image is the final stage that carries it. A Rust musl binary lands the same way.
# Build stage: compile a fully static binary (Go shown; Rust musl is the same idea).FROM ghcr.io/quenchworks/images/go:1.25 AS buildUSER rootWORKDIR /srcENV CGO_ENABLED=0 \ GOOS=linux \ GOCACHE=/tmp/gocache \ GOMODCACHE=/tmp/gomodcache
COPY go.mod go.sum ./RUN ["go", "mod", "download"]COPY . .RUN ["go", "build", "-trimpath", "-ldflags=-s -w", "-o", "/out/app", "./cmd/app"]
# This image is the final runtime stage: just the binary, nonroot.FROM ghcr.io/quenchworks/images/staticCOPY --from=build /out/app /appUSER 1001EXPOSE 8080ENTRYPOINT ["/app"]This Dockerfile is pinned to the latest line. For the line-by-line walkthrough and ecosystem variants (npm/Yarn, pip/uv/Poetry, Maven/Gradle), see the Build a Go or Rust binary guide.
Upstream project: https://github.com/wolfi-dev