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

基于Dockerfile构建自定义镜像时提示Chromium可执行文件不存在无法启动

问题解决方法

该报错的核心触发原因有两点:

  1. Alpine 发行版使用 musl libc 编译系统软件,你通过 apk 安装的 Chromium 版本和 Playwright 默认适配的 glibc 编译的浏览器版本路径、依赖兼容不一致
  2. 你当前的 Dockerfile 存在执行顺序错误、缺少 npm 依赖安装、未配置 Playwright 启动参数的问题

具体修复步骤
  • 移除错误的 PLAYWRIGHT_BROWSERS_PATH 环境变量,新增显式指定 Alpine 下 Chromium 可执行路径的环境变量:PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
  • 如果你的 CodeceptJS 配置文件中单独配置了 Playwright 的浏览器执行路径,需要同步修改为 /usr/bin/chromium-browser,配置文件优先级高于环境变量
  • 补充 Chromium 运行所需的依赖包,避免缺库导致的可执行文件加载失败
  • 调整 Dockerfile 执行顺序,先安装系统依赖,再安装 npm 依赖,最后拷贝业务代码,充分利用 Docker 层缓存
  • 新增 Playwright 启动参数 --no-sandbox --disable-dev-shm-usage,关闭容器环境下不需要的沙箱限制
  • 补充缺失的 RUN npm install 步骤,你当前的 Dockerfile 只拷贝了 package.json 但没有安装 npm 依赖,Playwright 相关包未部署会触发路径识别错误

修正后的 Dockerfile 示例
FROM alpine:latest

# 先安装系统依赖
RUN apk add --update --no-cache npm chromium nss freetype harfbuzz ca-certificates ttf-freefont

# 创建工作目录
RUN mkdir -p /usr/app
WORKDIR /usr/app

# 先拷贝依赖声明文件,安装npm依赖
COPY package.json package-lock.json ./
RUN npm install

# 再拷贝业务代码
COPY . .

# 环境变量配置
ENV BASE_URL="Local https url"
ENV PARALLEL_RUN=false
ENV TAG=int
# 显式指定apk安装的chromium路径
ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
# 配置Playwright启动参数,关闭沙箱
ENV PLAYWRIGHT_LAUNCH_OPTIONS='{"args": ["--no-sandbox", "--disable-dev-shm-usage"]}'

# 调试可选:确认Chromium路径是否正常
# RUN ls -la /usr/bin/chromium-browser && which chromium-browser

# 运行测试
RUN npm run codeceptjs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:27:05