From 3482561a1f79035b8adbb3311456e0d9226a8036 Mon Sep 17 00:00:00 2001 From: Greg Magolan Date: Tue, 23 Jun 2026 13:11:53 -0700 Subject: [PATCH] fix(template): use linux/arm64/v8 for Go distroless base image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The gcr.io/distroless/base image index labels its arm64 manifest with variant "v8". rules_oci builds its platform-match string from os/arch/variant, so the manifest's platform is "linux/arm64/v8". The Go oci.pull requested bare "linux/arm64", which never matches and fails on Apple Silicon with: No matching manifest found in image gcr.io/distroless/base for platform linux/arm64 CI passed because it runs on linux/amd64, which matched fine — only the arm64 fetch path (exercised on Apple Silicon) was broken. The Python base image in the same file already used the variant-qualified form; this brings the Go entry in line. Co-Authored-By: Claude Opus 4.8 (1M context) --- template/MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template/MODULE.bazel b/template/MODULE.bazel index 9387cfd6..dd46dbce 100644 --- a/template/MODULE.bazel +++ b/template/MODULE.bazel @@ -384,10 +384,10 @@ oci.pull( image = "gcr.io/distroless/base", platforms = [ "linux/amd64", - "linux/arm64", + "linux/arm64/v8", ], ) -use_repo(oci, "distroless_base", "distroless_base_linux_amd64", "distroless_base_linux_arm64") +use_repo(oci, "distroless_base", "distroless_base_linux_amd64", "distroless_base_linux_arm64_v8") {% endif %} {% if python %} oci.pull(