"exec format error" on an M-series Mac building images for x86 servers
verbatim errordocker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "node": exec format error
Problem
Built an image on a MacBook Pro (M3), pushed to the registry, deployed to the production Linux cluster:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "node": exec format errorThe image runs locally. The exact same tag crashes on the server, every time, instantly.
Root cause
The default docker build on Apple Silicon produces an arm64 image. Production servers are amd64. The image is a valid OCI image — the CPU just cannot execute its binaries. The error message ("exec format error") is the kernel refusing to exec an ELF binary for a foreign architecture, and it does not mention architecture anywhere, which is why this costs people an afternoon.
Confirm in five seconds:
docker image inspect our-registry/app:1.4.2 --format '{{.Architecture}}'
# arm64 <- there it isfix preview — first 3 of 4 lines (bash), truncated:
docker buildx build \
--platform linux/amd64 \
-t our-registry/app:1.4.2 \
… 1 more line in the fix🔒 the fix — including 3 code blocks — is members-only. $1/mo unlocks everything.