v24 broken on amd64
Environment
- Platform: Codefresh
- Node.js Version: 24.11.0
- Image Tag: node:krypton-bullseye-slim
Expected Behavior
running commands, such as npm, yarn, etc, to work
Current Behavior
Getting the exec /bin/sh format error error
Work fine locally on mac - arm64 but fails on CI (codefresh) - x86_64
For now, using --platform=linux/amd64 seems to solve the issue but is not ideal.
😕 Are you trying to run the arm64v8 image on an amd64 host? While Docker Desktop on Mac will set up the user-mode emulation to make it able to run images regardless of architecture (so amd64 images on an arm-based Mac), this is not true on a Linux host (but is super simple install). If you do need to build/test/run non-amd64 architectures on an amd64 (aka x86_64) host, apt-get install qemu-user-static (or just qemu-user on Debian Trixie+) should be enough to make docker run --platform=linux/[architecture] node:... work for any image-supported values of architecture.
hi @yosifkit, thanks for the quick response. I'm upgrading our services to work with node 24, krypton, everything worked fine with iron and jod so I assumed it would work the same with Krypton.
I'm trying to run node:krypton-bullseye-slim on x86_64 host, just like it works with node:iron-bullseye-slim.
As a simple example, running
docker run --rm node:iron-bullseye-slim bash -c "node -v"
works on both arm and x86_64
but
docker run --rm node:krypton-bullseye-slim bash -c "node -v"
results in exec format error when running on x86_64