diff --git a/Dockerfile.distroless b/Dockerfile.distroless index ec34139dc9..c338851bd4 100644 --- a/Dockerfile.distroless +++ b/Dockerfile.distroless @@ -1,8 +1,10 @@ -FROM gcr.io/distroless/static-debian13:nonroot@sha256:f9f84bd968430d7d35e8e6d55c40efb0b980829ec42920a49e60e65eac0d83fc -# Base image sets USER to 65532:65532 (nonroot user). - 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" diff --git a/Makefile.common b/Makefile.common index e3adb8958e..790dad2321 100644 --- a/Makefile.common +++ b/Makefile.common @@ -250,12 +250,17 @@ $(BUILD_DOCKER_ARCHS): common-docker-%: @for variant in $(DOCKERFILE_VARIANTS_WITH_NAMES); do \ dockerfile=$${variant#*:}; \ variant_name=$${variant%%:*}; \ + distroless_arch="$*"; \ + if [ "$*" = "armv7" ]; then \ + distroless_arch="arm"; \ + fi; \ if [ "$$dockerfile" = "Dockerfile" ]; then \ echo "Building default variant ($$variant_name) for linux-$* using $$dockerfile"; \ docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" \ -f $$dockerfile \ --build-arg ARCH="$*" \ --build-arg OS="linux" \ + --build-arg DISTROLESS_ARCH="$$distroless_arch" \ $(DOCKERBUILD_CONTEXT); \ if [ "$$variant_name" != "default" ]; then \ echo "Tagging default variant with $$variant_name suffix"; \ @@ -268,6 +273,7 @@ $(BUILD_DOCKER_ARCHS): common-docker-%: -f $$dockerfile \ --build-arg ARCH="$*" \ --build-arg OS="linux" \ + --build-arg DISTROLESS_ARCH="$$distroless_arch" \ $(DOCKERBUILD_CONTEXT); \ fi; \ done