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

M1芯片设备Docker Node.js环境安装Puppeteer提示arm64无Chromium二进制文件求助

问题根因

报错是两个配置冲突导致的:

  1. M1芯片的Docker默认优先使用arm64架构运行容器,即使你在基础镜像指定了--platform=linux/amd64,npm安装Puppeteer时仍会检测当前运行环境的架构,查找对应arm64版本的Chromium二进制
  2. 你配置了PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true跳过了Puppeteer内置的Chromium下载,但没有在镜像内手动安装可用的Chromium,最终触发找不到二进制的报错

推荐解决方案(适配arm64/amd64双架构,M1原生运行性能更好)

直接修改Dockerfile如下,不需要强制模拟amd64架构:

FROM node:16-alpine
WORKDIR /app
EXPOSE 8000

# 配置Puppeteer参数,跳过内置Chromium下载,使用系统安装的Chromium
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium-browser

# 安装Chromium及Puppeteer依赖的系统库
RUN apk add --no-cache \
      chromium \
      nss \
      freetype \
      harfbuzz \
      ca-certificates \
      ttf-freefont \
      build-base \
      python3

COPY . .
RUN npm install
CMD ["npm", "start"]

配置说明

  • 移除了基础镜像的强制linux/amd64平台参数,避免M1上通过qemu模拟amd64环境产生的额外兼容性问题,原生arm64运行性能提升30%以上
  • 新增了Chromium和相关依赖的系统安装步骤,Alpine源的Chromium包同时适配arm64和amd64架构,两种环境都能正常调用
  • 新增PUPPETEER_EXECUTABLE_PATH环境变量,明确指定Puppeteer调用的Chromium路径,避免自动查找失败的问题

特殊场景:如果必须构建linux/amd64架构镜像

在构建命令前指定平台参数即可,上述Dockerfile无需修改:

docker buildx build --platform linux/amd64 -t your-image-name .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:24:05