Build the amd64 image with QEMU 9.2.2 and only emulate the final stage
QEMU 8.x crashes running x86_64 programs on an arm64 host (QEMU issue 2168), which the 8.1.5 pin walked into, and 10.2 segfaults on the runner as well; 9.2.2 runs node, composer and install-php-extensions on the runner's host. The Composer and npm stages now build on the build machine's platform: their output is the same for every target, so a multi-arch build runs them once and natively. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V9NnLxnPp8vaaurb3Z1MFy
This commit is contained in:
co-authored by
Claude Opus 5
parent
21bea9646d
commit
09e24ade14
@@ -67,12 +67,14 @@ jobs:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# The runner is an arm64 server, so the amd64 image is emulated. On its 6.8 kernel, recent
|
||||
# QEMU builds segfault compiling PHP extensions (docker/buildx#3170); QEMU 8 is pinned.
|
||||
# The runner is an arm64 server, so the amd64 image's final stage is emulated. QEMU 8.x
|
||||
# crashes running x86_64 programs on an arm64 host (QEMU issue 2168, "QEMU internal
|
||||
# SIGSEGV {code=MAPERR, addr=0x20}") and 10.2 segfaults on this runner too; 9.2.2 was
|
||||
# checked on the runner's host: node, composer and install-php-extensions all run.
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
image: tonistiigi/binfmt:qemu-v8.1.5
|
||||
image: tonistiigi/binfmt:qemu-v9.2.2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
Reference in New Issue
Block a user