Opened 3 weeks ago
Last modified 2 weeks ago
#64654 new defect (bug)
Docker images in wordpress-develop do not support on Apple Silicon
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Build/Test Tools | Keywords: | |
| Focuses: | Cc: |
Description
On Apple Silicon (M1), running the WordPress core development environment fails because the Docker images wordpressdevelop/php:latest and wordpressdevelop/cli:latest do not provide linux/arm64 support.
Environment
- MacBook Pro (13-inch, M1, 2020)
- Apple M1
- macOS 26.3 (25D125)
- Node.js 20.x
- npm 10.x
Steps to Reproduce
npm install npm run build:dev npm run env:start
Actual Result
Docker fails with:
no matching manifest for linux/arm64/v8 in the manifest list entries
Affected images:
- wordpressdevelop/php:latest
- wordpressdevelop/cli:latest
Expected Result
The development environment should start successfully on Apple Silicon without requiring manual platform overrides.
Workaround
The environment starts only if docker-compose.override.yml includes platform overrides for php and cli (similar to mysql):
services:
php:
platform: linux/amd64
cli:
platform: linux/amd64
mysql:
platform: linux/amd64
Without overriding php and cli, the environment does not start.
Attachments (1)
Change History (6)
#2
@
3 weeks ago
I've observed the same issue, so thanks for filing this.
The environment starts only if docker-compose.override.yml includes platform overrides for php and cli (similar to mysql):
That's useful. In a pinch, when I needed to run pre-commit tests the other day, the workaround I used was to choose older Docker images that provide the necessary platform support:
$ diff .env.example .env 18c18 < LOCAL_PHP=latest --- > LOCAL_PHP=7.4-fpm
@pento (hi!) — your name is attached to these recently updated PHP images: https://hub.docker.com/r/wordpressdevelop/php/tags
Are you the person to ask about this?
This ticket was mentioned in Slack in #core-committers by ella. View the logs.
2 weeks ago
#4
follow-up:
↓ 5
@
2 weeks ago
What worked for me is pulling the images manually (I already had "Use Rosetta for x86_64/amd64 emulation on Apple Silicon" on but that by itself didn't work).
docker pull --platform linux/amd64 wordpressdevelop/php:latest
docker pull --platform linux/amd64 wordpressdevelop/cli:latest
Then npm run env:start worked using that cache.
#5
in reply to:
↑ 4
@
2 weeks ago
Replying to ellatrix:
What worked for me is pulling the images manually (I already had "Use Rosetta for x86_64/amd64 emulation on Apple Silicon" on but that by itself didn't work).
docker pull --platform linux/amd64 wordpressdevelop/php:latest
docker pull --platform linux/amd64 wordpressdevelop/cli:latest
Then npm run env:start worked using that cache.
This doesn't do anything for me, but I suppose it's unsurprising because it's pulling the same images that I was already using. The real issue is that there are no images for Apple Silicon, and so Docker tries to emulate amd64 and fails. Now as to why I experience this and you don't...? I really don't know. Subtle differences in the OS's emulation ability? I thought for a second it might because you're on macOS Tahoe and I'm holding on to Sequoia, but I see that the reports from huzaifaalmesbah and noruzzaman explicitly mention Tahoe, so ¯\_(ツ)_/¯.
Btw, I should have shared earlier that I do think this comes down to emulation: the PHP container always fails when it tries to run its default command — `php-fpm` — and its only log message is:
$ docker-compose logs php
php-1 | qemu-x86_64: QEMU internal SIGSEGV {code=MAPERR, addr=0xffff9cdc06c4}
Just to be safe, I tried (re)installing Rosetta, but the outcome's the same.
Corroborating the idea that it's php-fpm specifically:
# I'm able to start an interactive throwaway container exec'ing bash:
$ docker run -it --rm wordpressdevelop/php:latest bash
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
root@076162487f7f:/var/www#
# php itself runs:
root@076162487f7f:/var/www# php -r 'echo 42, PHP_EOL;'
42
# but FPM (FastCGI Process Manager) doesn't:
root@076162487f7f:/var/www# php-fpm
qemu-x86_64: QEMU internal SIGSEGV {code=MAPERR, addr=0xffffafa98c44}
Segmentation fault
I’m experiencing the same issue on my machine.
Device Information:
Model: Mac mini (2024)
Chip: Apple M4
macOS: Tahoe 26.3
When running:
Docker fails with: