From bb0bca274cf9b6ae0d456732dc3d37ccc00841c9 Mon Sep 17 00:00:00 2001 From: Michal Date: Sun, 18 Oct 2026 12:18:50 +0100 Subject: [PATCH] bastion image: pin ipxe-builder stage to the build platform MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The arm64 image build died at the iPXE compile: under podman multi-arch builds the stage runs once per TARGET platform, and the iPXE toolchain (gcc/perl build system) does not survive qemu-user emulation. The stage already cross-compiles both bin-x86_64-efi and bin-arm64-efi outputs in one pass, so it only ever needs to run natively on the build host — FROM --platform=$BUILDPLATFORM restores the arm64 image without qemu touching the iPXE build. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01V6HNx6cyr4J4CiMGCy1wkF --- bastion/Dockerfile.bastion | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bastion/Dockerfile.bastion b/bastion/Dockerfile.bastion index a84edf9..6952325 100644 --- a/bastion/Dockerfile.bastion +++ b/bastion/Dockerfile.bastion @@ -29,7 +29,9 @@ COPY src/modules/modules/ src/modules/modules/ RUN pnpm build # ── Stage 1b: Build iPXE snp.efi (uses UEFI SNP protocol for ISO boot) ── -FROM fedora:43 AS ipxe-builder +# Pinned to the build platform: this stage cross-compiles BOTH arch outputs +# itself, and the iPXE toolchain does not survive qemu-user emulation. +FROM --platform=$BUILDPLATFORM fedora:43 AS ipxe-builder RUN dnf install -y git gcc make perl-interpreter xz-devel gcc-aarch64-linux-gnu && dnf clean all RUN git clone --depth=1 https://github.com/ipxe/ipxe.git /tmp/ipxe