forked from RoushTech/docker
FrankenPHP images crash with Illegal instruction on amd64 CI runner #10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The FrankenPHP images (
FrankenPHP.Dockerfile) install php-zts packages from pkg.henderkes.com. On the Forgejo CI runner's amd64 CPU, bothfrankenphp versionandphp --versioncrash with Illegal instruction (core dumped), so the/etc/validate.d/frankenphp.shand/etc/validate.d/php.shvalidations fail. Caught by the new test gate in #9 (run 192).The images work on native aarch64 (local Mac builds).
FrankenPHP.Dockerfilealready documents the same crash class on aarch64 forphp-zts-igbinary/php-zts-redis, which are omitted for that reason.Likely cause: the upstream builds target a newer x86-64 microarchitecture level (v2/v3, e.g. requiring SSE4/AVX) than the runner CPU exposes.
Current state
The frankenphp test dependencies in
test.ymlare commented out (see the "FrankenPHP:" comments) so the gate isn't permanently red. This means frankenphp images build and push unvalidated.Avenues to investigate
lscpu//proc/cpuinfo) — if it's a VM with a restrictive CPU model (qemu64/kvm64 without SSE4/AVX), fixing CPU passthrough on the VM may be the real fix.Done means
Re-enable the commented-out frankenphp entries in
test.ymland the full test suite passes in the Build workflow.Scope update: this also blocks the build, not just the tests — FrankenPHP.Dockerfile runs /usr/local/bin/validate as an image-build step, so the frankenphp bake target fails on the runner (see Build run 204). The build-frankenphp job in build.yml is now also commented out pending this issue, alongside the test.yml entries.