mirror of
https://github.com/prometheus/prometheus.git
synced 2026-05-04 17:04:22 -04:00
The distroless Dockerfile was using a hardcoded SHA256 digest that
referenced only the amd64 image, preventing builds for other
architectures. This caused the main-distroless tag to only publish
amd64 images while the regular main tag had all 5 architectures.
Changes:
- Use architecture-specific image tags (nonroot-${DISTROLESS_ARCH})
instead of SHA256 digest to enable multi-arch manifest resolution
- Add DISTROLESS_ARCH build arg to handle architecture name mapping
(armv7 -> arm) between Prometheus and distroless conventions
- Move ARG declarations before FROM to support variable substitution
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
28 lines
1.3 KiB
Docker
28 lines
1.3 KiB
Docker
ARG ARCH="amd64"
|
|
ARG OS="linux"
|
|
ARG DISTROLESS_ARCH="amd64"
|
|
|
|
# Use DISTROLESS_ARCH for base image selection (handles armv7->arm mapping).
|
|
FROM gcr.io/distroless/static-debian13:nonroot-${DISTROLESS_ARCH}
|
|
# Base image sets USER to 65532:65532 (nonroot user).
|
|
|
|
LABEL org.opencontainers.image.authors="The Prometheus Authors"
|
|
LABEL org.opencontainers.image.vendor="Prometheus"
|
|
LABEL org.opencontainers.image.title="Prometheus"
|
|
LABEL org.opencontainers.image.description="The Prometheus monitoring system and time series database"
|
|
LABEL org.opencontainers.image.source="https://github.com/prometheus/prometheus"
|
|
LABEL org.opencontainers.image.url="https://github.com/prometheus/prometheus"
|
|
LABEL org.opencontainers.image.documentation="https://prometheus.io/docs"
|
|
LABEL org.opencontainers.image.licenses="Apache License 2.0"
|
|
LABEL io.prometheus.image.variant="distroless"
|
|
|
|
COPY documentation/examples/prometheus.yml /etc/prometheus/prometheus.yml
|
|
COPY LICENSE NOTICE npm_licenses.tar.bz2 /
|
|
COPY .build/${OS}-${ARCH}/prometheus /bin/prometheus
|
|
COPY .build/${OS}-${ARCH}/promtool /bin/promtool
|
|
|
|
WORKDIR /prometheus
|
|
EXPOSE 9090
|
|
ENTRYPOINT [ "/bin/prometheus" ]
|
|
CMD [ "--config.file=/etc/prometheus/prometheus.yml", \
|
|
"--storage.tsdb.path=/prometheus" ]
|