buildah icon indicating copy to clipboard operation
buildah copied to clipboard

FROM --platform=<os/arch> Containerfile construct picks the wrong platform with image index

Open syedriko opened this issue 9 months ago • 4 comments

Containerfile:

FROM --platform=linux/amd64 ${BASE_IMAGE} as base_image

When building an image with the above fragment of Containerfile on linux/aarch64, it appears that if BASE_IMAGE refers to an image index, FROM --platform=linux/amd64 fails to look for the linux/amd64 image and instead looks for the platform the build is running on, linux/aarch64.

The build running on linux/aarch64 fails with the following error message:

Trying to pull quay.io/redhat-user-workloads/crt-nshift-lightspeed-tenant/own-app-lightspeed-rag-content@sha256:3bff77ee31f1c1ac0351bef86809c0aeef58626779941d14e08fe21bc62816eb...
Error: choosing an image from manifest list docker://quay.io/redhat-user-workloads/crt-nshift-lightspeed-tenant/own-app-lightspeed-rag-content@sha256:3bff77ee31f1c1ac0351bef86809c0aeef58626779941d14e08fe21bc62816eb: no image found in image index for architecture "arm64", variant "v8", OS "linux"

If, on the other hand, BASE_IMAGE refers directly to an image, --platform=linux/amd64 is honored.

syedriko avatar Mar 27 '25 16:03 syedriko

@flouthoc PTAL

mheon avatar Mar 27 '25 17:03 mheon

I'll take a look thanks.

flouthoc avatar Mar 27 '25 17:03 flouthoc

I'm having trouble putting together an isolated test case for this. Even the exact image that failed in the Konflux build ^^^ works:

$ cat Containerfile.test.fail 
FROM --platform=linux/amd64 quay.io/redhat-user-workloads/crt-nshift-lightspeed-tenant/own-app-lightspeed-rag-content@sha256:3bff77ee31f1c1ac0351bef86809c0aeef58626779941d14e08fe21bc62816eb as base-amd64
FROM --platform=$BUILDPLATFORM registry.redhat.io/ubi9/ubi-minimal:latest
COPY --from=base-amd64 /etc/os-release .
$ 

This is on Fedora 41 arm64, with

$ buildah --version
buildah version 1.39.2 (image-spec 1.1.0, runtime-spec 1.2.0)
$ 

I've also tried building buildah 1.39.3 and 1.40.0-dev from source, which both worked. There must be a key difference between how Konflux runs buildah and what I'm doing.

syedriko avatar Mar 28 '25 02:03 syedriko

A friendly reminder that this issue had no activity for 30 days.

github-actions[bot] avatar Apr 28 '25 00:04 github-actions[bot]