Open
Description
Issue Description
podman build
fails for armv7 on armv8 host, only when multilple FROM
are used.
The build environnement is: armv7 userspace on aarch64 kernel.
This fails with podman 5.5.0 but used to work with podman 5.4.2.
And this still works when a single FROM
is used.
Steps to reproduce the issue
Steps to reproduce the issue
- Setup armv7 build environnement with 32bit userspace on aarch64 kernel (lscpu returns armv8)
- Try to build a DockerFile with multiple FROM
- See the failure
Example of failing DockerFile:
FROM scratch AS target
FROM opensuse/tumbleweed:latest AS builder
COPY --from=target / /target
RUN set -euo pipefail; \
zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends bash ca-certificates-mozilla-prebuilt coreutils openSUSE-release openSUSE-release-appliance-docker
RUN set -euo pipefail; zypper -n install jdupes \
&& jdupes -1 -L -r /target/usr/
RUN set -euo pipefail; zypper -n --installroot /target clean -a; \
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
FROM scratch
COPY --from=builder /target /
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=org.opensuse.bci.micro
LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI Micro"
LABEL org.opencontainers.image.description="A micro environment for containers based on the openSUSE Tumbleweed Base Container Image."
LABEL org.opencontainers.image.version="%OS_VERSION_ID_SP%-%RELEASE%"
LABEL org.opencontainers.image.url="https://www.opensuse.org"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="openSUSE Project"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opencontainers.image.ref.name="%OS_VERSION_ID_SP%-%RELEASE%"
LABEL org.opensuse.reference="registry.opensuse.org/opensuse/bci/bci-micro:%OS_VERSION_ID_SP%-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
LABEL org.opensuse.release-stage="released"
# endlabelprefix
LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/micro-image/README.md"
LABEL io.artifacthub.package.logo-url="https://opensource.suse.com/bci/SLE_BCI_logomark_green.svg"
CMD ["/bin/sh"]
Describe the results you received
Error is: DEBU[0000] image platform (linux/arm) does not match the expected platform (linux/arm/v8)
Full log:
INFO[0000] podman filtering at log level debug
DEBU[0000] Called build.PersistentPreRunE(podman --debug build .)
DEBU[0000] Using conmon: "/usr/bin/conmon"
INFO[0000] Using sqlite as database backend
DEBU[0000] Using graph driver overlay
DEBU[0000] Using graph root /var/lib/containers/storage
DEBU[0000] Using run root /run/containers/storage
DEBU[0000] Using static dir /var/lib/containers/storage/libpod
DEBU[0000] Using tmp dir /run/libpod
DEBU[0000] Using volume path /var/lib/containers/storage/volumes
DEBU[0000] Using transient store: false
DEBU[0000] [graphdriver] trying provided driver "overlay"
DEBU[0000] Cached value indicated that overlay is supported
DEBU[0000] Cached value indicated that overlay is supported
DEBU[0000] Cached value indicated that metacopy is not being used
DEBU[0000] Cached value indicated that native-diff is usable
DEBU[0000] backingFs=extfs, projectQuotaSupported=false, useNativeDiff=true, usingMetacopy=false
DEBU[0000] Initializing event backend file
DEBU[0000] Configured OCI runtime runsc initialization failed: no valid executable found for OCI runtime runsc: invalid argument
DEBU[0000] Configured OCI runtime krun initialization failed: no valid executable found for OCI runtime krun: invalid argument
DEBU[0000] Configured OCI runtime ocijail initialization failed: no valid executable found for OCI runtime ocijail: invalid argument
DEBU[0000] Configured OCI runtime crun initialization failed: no valid executable found for OCI runtime crun: invalid argument
DEBU[0000] Configured OCI runtime runj initialization failed: no valid executable found for OCI runtime runj: invalid argument
DEBU[0000] Configured OCI runtime kata initialization failed: no valid executable found for OCI runtime kata: invalid argument
DEBU[0000] Configured OCI runtime youki initialization failed: no valid executable found for OCI runtime youki: invalid argument
DEBU[0000] Configured OCI runtime crun-vm initialization failed: no valid executable found for OCI runtime crun-vm: invalid argument
DEBU[0000] Configured OCI runtime crun-wasm initialization failed: no valid executable found for OCI runtime crun-wasm: invalid argument
DEBU[0000] Using OCI runtime "/usr/bin/runc"
INFO[0000] Setting parallel job count to 97
DEBU[0000] Normalized platform linux/arm to {arm linux [] }
DEBU[0000] base for stage 1: "opensuse/tumbleweed:latest" resolves to "opensuse/tumbleweed:latest"
DEBU[0000] rootfs needed for COPY in stage 1: "target"
DEBU[0000] stage 1 name: "target" resolves to "target"
DEBU[0000] rootfs needed for COPY in stage 2: "builder"
DEBU[0000] stage 2 name: "builder" resolves to "builder"
DEBU[0000] FROM "scratch AS target"
[1/3] STEP 1/1: FROM scratch AS target
DEBU[0000] Cached value indicated that idmapped mounts for overlay are supported
DEBU[0000] Normalized platform linux/arm/v7 to {arm linux [] v7}
DEBU[0000] Cached value indicated that volatile is being used
DEBU[0000] overlay: mount_data=lowerdir=/var/lib/containers/storage/overlay/3b5eaa08aeb2736c581c68f5b08d41b6abd77d875b0cf129d161fcac3410ae7b/empty,upperdir=/var/lib/containers/storage/overlay/3b5eaa08aeb2736c581c68f5b08d41b6abd77d875b0cf129d161fcac3410ae7b/diff,workdir=/var/lib/containers/storage/overlay/3b5eaa08aeb2736c581c68f5b08d41b6abd77d875b0cf129d161fcac3410ae7b/work,nodev,volatile
DEBU[0000] Container ID: a6da38ef89214549abbec02b8cd3cbb2ecb45677744ce28a538b0f864e3554ac
DEBU[0000] COMMIT
DEBU[0000] parsed reference into "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]docker.io/library/4e61f599696af5b983839951e3ce9913ce6eb9be5159398aa9e5f5d4717557cb-tmp:latest"
DEBU[0000] committing image with reference "containers-storage:[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]docker.io/library/4e61f599696af5b983839951e3ce9913ce6eb9be5159398aa9e5f5d4717557cb-tmp:latest" is allowed by policy
DEBU[0000] layer list: ["3b5eaa08aeb2736c581c68f5b08d41b6abd77d875b0cf129d161fcac3410ae7b"]
DEBU[0000] using "/var/tmp/buildah1238037509" to hold temporary data
DEBU[0000] OCIv1 config = {"created":"2025-05-27T14:46:22.862969475Z","architecture":"arm","os":"linux","variant":"v7","config":{"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"WorkingDir":"/","Labels":{"io.buildah.version":"1.40.0"}},"rootfs":{"type":"layers","diff_ids":[]},"history":[{"created":"2025-05-27T14:46:22.8632204Z","created_by":"/bin/sh","empty_layer":true}]}
DEBU[0000] OCIv1 manifest = {"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:134e4066e700d20604c340b4932a75c71dfdb882a460dd51d37bf5b95eb2eb6e","size":376},"layers":[],"annotations":{"org.opencontainers.image.base.digest":"","org.opencontainers.image.base.name":""}}
DEBU[0000] Docker v2s2 config = {"created":"2025-05-27T14:46:22.862969475Z","container":"a6da38ef89214549abbec02b8cd3cbb2ecb45677744ce28a538b0f864e3554ac","container_config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":null,"Image":"","Volumes":{},"WorkingDir":"/","Entrypoint":[],"OnBuild":[],"Labels":{"io.buildah.version":"1.40.0"}},"config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":null,"Image":"","Volumes":{},"WorkingDir":"/","Entrypoint":[],"OnBuild":[],"Labels":{"io.buildah.version":"1.40.0"}},"architecture":"arm","variant":"v7","os":"linux","rootfs":{"type":"layers"},"history":[{"created":"2025-05-27T14:46:22.8632204Z","created_by":"/bin/sh","empty_layer":true}]}
DEBU[0000] Docker v2s2 manifest = {"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":1024,"digest":"sha256:369da282b131b4ab33c5294a67bc819aaa079111e8da7901d6f5bd700873c8ca"},"layers":[]}
DEBU[0000] Using SQLite blob info cache at /var/lib/containers/cache/blob-info-cache-v1.sqlite
DEBU[0000] IsRunningImageAllowed for image containers-storage:
DEBU[0000] Using transport "containers-storage" policy section ""
DEBU[0000] Requirement 0: allowed
DEBU[0000] Overall: allowed
DEBU[0000] start reading config
DEBU[0000] finished reading config
DEBU[0000] Manifest has MIME type application/vnd.oci.image.manifest.v1+json, ordered candidate list [application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.v1+prettyjws, application/vnd.docker.distribution.manifest.v1+json]
DEBU[0000] ... will first try using the original manifest unmodified
DEBU[0000] No compression detected
DEBU[0000] Compression change for blob sha256:134e4066e700d20604c340b4932a75c71dfdb882a460dd51d37bf5b95eb2eb6e ("application/vnd.oci.image.config.v1+json") not supported
DEBU[0000] Using original blob without modification
DEBU[0000] setting image creation date to 2025-05-27 14:46:22.862969475 +0000 UTC
DEBU[0000] created new image ID "134e4066e700d20604c340b4932a75c71dfdb882a460dd51d37bf5b95eb2eb6e" with metadata "{}"
DEBU[0000] added name "docker.io/library/4e61f599696af5b983839951e3ce9913ce6eb9be5159398aa9e5f5d4717557cb-tmp:latest" to image "134e4066e700d20604c340b4932a75c71dfdb882a460dd51d37bf5b95eb2eb6e"
DEBU[0000] removing 4e61f599696af5b983839951e3ce9913ce6eb9be5159398aa9e5f5d4717557cb-tmp from assigned names to image "134e4066e700d20604c340b4932a75c71dfdb882a460dd51d37bf5b95eb2eb6e"
--> 134e4066e700
DEBU[0000] FROM "opensuse/tumbleweed:latest AS builder"
[2/3] STEP 1/8: FROM opensuse/tumbleweed:latest AS builder
DEBU[0000] Pulling image opensuse/tumbleweed:latest (policy: missing)
DEBU[0000] Looking up image "opensuse/tumbleweed:latest" in local containers storage
DEBU[0000] Normalized platform linux/arm/v8 to {arm linux [] v8}
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf"
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf.d/000-shortnames.conf"
DEBU[0000] Trying "registry.opensuse.org/opensuse/tumbleweed:latest" ...
DEBU[0000] reference "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]registry.opensuse.org/opensuse/tumbleweed:latest" does not resolve to an image ID
DEBU[0000] Trying "localhost/opensuse/tumbleweed:latest" ...
DEBU[0000] parsed reference into "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]@ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb"
DEBU[0000] Found image "opensuse/tumbleweed:latest" as "localhost/opensuse/tumbleweed:latest" in local containers storage
DEBU[0000] Found image "opensuse/tumbleweed:latest" as "localhost/opensuse/tumbleweed:latest" in local containers storage ([overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]@ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb)
DEBU[0000] exporting opaque data as blob "sha256:ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb"
DEBU[0000] image platform (linux/arm) does not match the expected platform (linux/arm/v8)
DEBU[0000] Trying "registry.opensuse.org/opensuse/tumbleweed:latest" ...
DEBU[0000] reference "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]registry.opensuse.org/opensuse/tumbleweed:latest" does not resolve to an image ID
DEBU[0000] Trying "registry.suse.com/opensuse/tumbleweed:latest" ...
DEBU[0000] reference "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]registry.suse.com/opensuse/tumbleweed:latest" does not resolve to an image ID
DEBU[0000] Trying "docker.io/opensuse/tumbleweed:latest" ...
DEBU[0000] reference "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]docker.io/opensuse/tumbleweed:latest" does not resolve to an image ID
DEBU[0000] Trying "docker.io/opensuse/tumbleweed:latest" ...
DEBU[0000] reference "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]docker.io/opensuse/tumbleweed:latest" does not resolve to an image ID
DEBU[0000] Trying "opensuse/tumbleweed:latest" ...
DEBU[0000] Trying "localhost/opensuse/tumbleweed:latest" ...
DEBU[0000] parsed reference into "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]@ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb"
DEBU[0000] Found image "opensuse/tumbleweed:latest" as "localhost/opensuse/tumbleweed:latest" in local containers storage
DEBU[0000] Found image "opensuse/tumbleweed:latest" as "localhost/opensuse/tumbleweed:latest" in local containers storage ([overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]@ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb)
DEBU[0000] exporting opaque data as blob "sha256:ac61c61e74cd3d3d201b2deec48eab8e52c1e778732e7ae64deae3e5f1e20efb"
DEBU[0000] image platform (linux/arm) does not match the expected platform (linux/arm/v8)
DEBU[0000] Enforcing pull policy to "newer" to pull custom platform (arch: "arm", os: "linux", variant: "v8") - local image may mistakenly specify wrong platform
DEBU[0000] Normalized platform linux/arm/v8 to {arm linux [] v8}
DEBU[0000] Attempting to pull candidate registry.opensuse.org/opensuse/tumbleweed:latest for opensuse/tumbleweed:latest
DEBU[0000] parsed reference into "[overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]registry.opensuse.org/opensuse/tumbleweed:latest"
DEBU[0000] Resolved "opensuse/tumbleweed" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Resolved "opensuse/tumbleweed" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull registry.opensuse.org/opensuse/tumbleweed:latest...
DEBU[0000] Copying source image //registry.opensuse.org/opensuse/tumbleweed:latest to destination image [overlay@/var/lib/containers/storage+/run/containers/storage:overlay.mountopt=nodev]registry.opensuse.org/opensuse/tumbleweed:latest
DEBU[0000] Using registries.d directory /etc/containers/registries.d
DEBU[0000] Trying to access "registry.opensuse.org/opensuse/tumbleweed:latest"
DEBU[0000] No credentials matching registry.opensuse.org/opensuse/tumbleweed found in /run/containers/0/auth.json
DEBU[0000] No credentials matching registry.opensuse.org/opensuse/tumbleweed found in /root/.config/containers/auth.json
DEBU[0000] No credentials matching registry.opensuse.org/opensuse/tumbleweed found in /root/.docker/config.json
DEBU[0000] No credentials matching registry.opensuse.org/opensuse/tumbleweed found in /root/.dockercfg
DEBU[0000] No credentials for registry.opensuse.org/opensuse/tumbleweed found
DEBU[0000] Lookaside configuration: using "default-docker" configuration
DEBU[0000] No signature storage configuration found for registry.opensuse.org/opensuse/tumbleweed:latest, using built-in default file:///var/lib/containers/sigstore
DEBU[0000] Looking for TLS certificates and private keys in /etc/docker/certs.d/registry.opensuse.org
DEBU[0000] Sigstore attachments: using "default-docker" configuration
DEBU[0000] GET https://registry.opensuse.org/v2/
DEBU[0000] Ping https://registry.opensuse.org/v2/ err Get "https://registry.opensuse.org/v2/": dial tcp: lookup registry.opensuse.org on [::1]:53: read udp [::1]:36300->[::1]:53: read: connection refused (&url.Error{Op:"Get", URL:"https://registry.opensuse.org/v2/", Err:(*net.OpError)(0x477cc60)})
DEBU[0000] Accessing "registry.opensuse.org/opensuse/tumbleweed:latest" failed: pinging container registry registry.opensuse.org: Get "https://registry.opensuse.org/v2/": dial tcp: lookup registry.opensuse.org on [::1]:53: read udp [::1]:36300->[::1]:53: read: connection refused
DEBU[0000] Error pulling candidate registry.opensuse.org/opensuse/tumbleweed:latest: internal error: unable to copy from source docker://registry.opensuse.org/opensuse/tumbleweed:latest: initializing source docker://registry.opensuse.org/opensuse/tumbleweed:latest: pinging container registry registry.opensuse.org: Get "https://registry.opensuse.org/v2/": dial tcp: lookup registry.opensuse.org on [::1]:53: read udp [::1]:36300->[::1]:53: read: connection refused
Error: creating build container: internal error: unable to copy from source docker://registry.opensuse.org/opensuse/tumbleweed:latest: initializing source docker://registry.opensuse.org/opensuse/tumbleweed:latest: pinging container registry registry.opensuse.org: Get "https://registry.opensuse.org/v2/": dial tcp: lookup registry.opensuse.org on [::1]:53: read udp [::1]:36300->[::1]:53: read: connection refused
DEBU[0000] Shutting down engines
INFO[0000] Received shutdown.Stop(), terminating! PID=1958
Describe the results you expected
Build should work.
podman info output
host:
arch: arm
buildahVersion: 1.40.0
cgroupControllers:
- cpuset
- cpu
- io
- memory
- hugetlb
- pids
- rdma
- misc
- dmem
cgroupManager: cgroupfs
cgroupVersion: v2
conmon:
package: conmon-2.1.13-1.3.armv7hl
path: /usr/bin/conmon
version: 'conmon version 2.1.13, commit: unknown'
cpuUtilization:
idlePercent: 99.81
systemPercent: 0.08
userPercent: 0.11
cpus: 32
databaseBackend: sqlite
distribution:
distribution: unknown
version: unknown
eventLogger: file
freeLocks: 2048
hostname: oss-cobbler-03
idMappings:
gidmap: null
uidmap: null
kernel: 6.14.6-2-default
linkmode: dynamic
logDriver: k8s-file
memFree: 2909282304
memTotal: 4088094720
networkBackend: netavark
networkBackendInfo:
backend: netavark
dns:
package: aardvark-dns-1.15.0-1.1.armv7hl
path: /usr/libexec/podman/aardvark-dns
version: aardvark-dns 1.15.0
package: netavark-1.15.0-1.1.armv7hl
path: /usr/libexec/podman/netavark
version: netavark 1.15.0
ociRuntime:
name: runc
package: runc-1.3.0-1.1.armv7hl
path: /usr/bin/runc
version: |-
runc version 1.3.0
commit: v1.3.0-0-g4ca628d1d4c9
spec: 1.2.1
go: go1.24.2
libseccomp: 2.6.0
os: linux
pasta:
executable: /bin/pasta
package: passt-20250512.8ec1341-1.1.armv7hl
version: ""
remoteSocket:
exists: true
path: /run/podman/podman.sock
rootlessNetworkCmd: pasta
security:
apparmorEnabled: false
capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
rootless: false
seccompEnabled: true
seccompProfilePath: /usr/share/containers/seccomp.json
selinuxEnabled: false
serviceIsRemote: false
slirp4netns:
executable: /bin/slirp4netns
package: slirp4netns-1.3.2-1.2.armv7hl
version: |-
slirp4netns version 1.3.2
commit: unknown
libslirp: 4.9.0
SLIRP_CONFIG_VERSION_MAX: 6
libseccomp: 2.6.0
swapFree: 1073737728
swapTotal: 1073737728
uptime: 0h 9m 23.00s
variant: v8
plugins:
authorization: null
log:
- k8s-file
- none
- passthrough
- journald
network:
- bridge
- macvlan
- ipvlan
volume:
- local
registries:
search:
- registry.opensuse.org
- registry.suse.com
- docker.io
store:
configFile: /usr/share/containers/storage.conf
containerStore:
number: 0
paused: 0
running: 0
stopped: 0
graphDriverName: overlay
graphOptions:
overlay.mountopt: nodev
graphRoot: /var/lib/containers/storage
graphRootAllocated: 42275667968
graphRootUsed: 873910272
graphStatus:
Backing Filesystem: extfs
Native Overlay Diff: "true"
Supports d_type: "true"
Supports shifting: "true"
Supports volatile: "true"
Using metacopy: "false"
imageCopyTmpDir: /var/tmp
imageStore:
number: 6
runRoot: /run/containers/storage
transientStore: false
volumePath: /var/lib/containers/storage/volumes
version:
APIVersion: 5.5.0
Built: 1747285822
BuiltTime: Thu May 15 05:10:22 2025
GitCommit: ""
GoVersion: go1.24.3
Os: linux
OsArch: linux/arm
Version: 5.5.0
Podman in a container
No
Privileged Or Rootless
None
Upstream Latest Release
Yes
Additional environment details
This is inside the openSUSE Build Service targeting openSUSE Tumbleweed armv7.
Additional information
No response