docker-node icon indicating copy to clipboard operation
docker-node copied to clipboard

v24 broken on amd64

Open gotenxds opened this issue 2 months ago • 2 comments

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.

gotenxds avatar Nov 06 '25 06:11 gotenxds

😕 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.

yosifkit avatar Nov 06 '25 19:11 yosifkit

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

gotenxds avatar Nov 06 '25 20:11 gotenxds