You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions中构建Node.js ARM64镜像失败问题排查

问题:Github Actions构建ARM64 Node.js镜像失败(exec format error)

我正尝试为个人Node.js项目构建可在树莓派运行的ARM64架构镜像,但在Github Actions中构建失败,报错如下:

#10 [5/5] RUN npm install
#10 0.154 exec /bin/sh: exec format error
#10 ERROR: process "/bin/sh -c npm install" did not complete successfully: exit code: 1
------
 > [5/5] RUN npm install:
0.154 exec /bin/sh: exec format error
------
Dockerfile:9
--------------------
   7 |     COPY . .
   8 |     
   9 | >>> RUN npm install
  10 |     
  11 |     EXPOSE 3000
--------------------
ERROR: failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 1
Error: Process completed with exit code 1.

我的Dockerfile内容如下:

FROM --platform=linux/arm64 arm64v8/node:20

WORKDIR /usr/src/app

COPY package*.json ./

COPY . .

RUN npm install

EXPOSE 3000

CMD ["node", "server.js"]

我尝试过多个Node.js版本,结果均相同;曾误使用非ARM64版本的Node镜像,构建却能成功。请问我遗漏了什么?


解决方法

这个错误的核心原因是:Github Actions默认运行环境是x86_64架构,直接执行ARM64架构的二进制文件(比如镜像里的/bin/sh)会因为指令集不兼容报错,必须先启用跨架构模拟或者使用多架构构建工具。

  • 启用QEMU跨架构模拟
    在你的Github Actions workflow文件中,先添加QEMU的配置步骤,它会让x86_64的runner能够模拟执行ARM64的二进制指令。示例workflow代码:

    jobs:
      build-arm64-image:
        runs-on: ubuntu-latest
        steps:
          - name: 拉取代码
            uses: actions/checkout@v4
          - name: 配置QEMU
            uses: docker/setup-qemu-action@v3
          - name: 初始化Docker Buildx
            uses: docker/setup-buildx-action@v3
          - name: 构建ARM64镜像
            uses: docker/build-push-action@v5
            with:
              context: .
              platforms: linux/arm64
              push: false # 如果需要推送到镜像仓库,改为true并配置仓库凭证
    
  • 为什么非ARM64镜像能成功?
    因为非ARM64的Node镜像是x86_64架构的,和Github Actions runner的架构一致,不需要模拟就能直接执行构建步骤,但这样构建出来的镜像拿到树莓派(ARM64)上运行时,会出现和现在一样的exec format error,完全无法使用。

  • Dockerfile的--platform参数
    你当前使用的FROM --platform=linux/arm64 arm64v8/node:20是正确的,它明确指定了基础镜像的架构,不需要修改。


内容的提问来源于stack exchange,提问作者Morten Hagh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:57:21