Skip to content
QuenchWorks

poetry

Runtime · Build tool · standard · v2.4.1

A+nonrootcosign signedSPDX SBOMSLSA provenanceamd64 · arm64

Python base image with Poetry for dependency management and packaging, used as the build stage for Python projects. Line 2.

Signed
cosign keyless
SBOM
SPDX, on digest
Provenance
SLSA build
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Image size
47.2 MB
Last rebuilt
2026-07-26

Security report (Trivy)

A+· 100/1000 fixable CVEs
0
Critical
0
High
0
Medium
0
Low
0
Unknown

Security report (Trivy) · poetry 2.4.1

Published versions

1 tag

Each tag is a multi-arch index (amd64 + arm64) pinned by digest. Tagged by version, never :latest.

VersionSizePublishedDigest
2.4.1latest47.2 MB2026-07-26sha256:f438a2543215…

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/poetry:2.4.1

Or pull it directly

docker pull ghcr.io/quenchworks/images/poetry:2.4.1
Version line
2.4.1
Latest line
2.4.1
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/poetry:2.4.1 \
  --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
cosign verify-attestation --type https://slsa.dev/provenance/v1 ghcr.io/quenchworks/images/poetry:2.4.1 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 3. SPDX SBOM — the package inventory
cosign verify-attestation --type https://spdx.dev/Document/v2.3 ghcr.io/quenchworks/images/poetry:2.4.1 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

See the SBOM & provenance guide for reading the SBOM and using these checks in CI.

Best-practice Dockerfile for 2.4.1

Poetry leads: it installs the locked, production-only dependency set into an in-project venv, then a clean python base receives that venv and the app. Poetry never ships in the runtime image.

ghcr.io/quenchworks/images/poetry:2.4.147.2 MBrebuilt 3 days ago
# Build stage: Poetry installs the main group into an in-project venv.
FROM ghcr.io/quenchworks/images/poetry:2.4.1 AS build
USER root
WORKDIR /app
ENV POETRY_VIRTUALENVS_IN_PROJECT=true \
POETRY_NO_INTERACTION=1 \
POETRY_CACHE_DIR=/tmp/poetry
COPY pyproject.toml poetry.lock ./
RUN ["poetry", "install", "--only", "main", "--no-root"]
COPY . .
RUN ["poetry", "install", "--only", "main"]
# Runtime stage: copy the venv + app onto a clean python base, nonroot.
FROM ghcr.io/quenchworks/images/python:3.14.6 AS runtime
WORKDIR /app
ENV PATH="/app/.venv/bin:$PATH" \
PYTHONUNBUFFERED=1
COPY --from=build /app/.venv /app/.venv
COPY --from=build /app /app
USER 1001
EXPOSE 8000
CMD ["python", "-m", "app"]

This Dockerfile is pinned to the 2.4.1 line. For the line-by-line walkthrough and ecosystem variants (npm/Yarn, pip/uv/Poetry, Maven/Gradle), see the Build a Python appguide.

Upstream project: https://python-poetry.org