如何为Puppeteer 13.5.2安装指定版本Chromium 100.0.4889.0?
解决Docker中安装指定版本Chromium的问题
方案1:手动下载对应版本的Chromium预编译包
Debian Stretch(node:10-slim的基础系统)官方软件源内没有Chromium 100.0.4889.0,无法通过apt直接安装。可以手动下载Puppeteer官方兼容的Chromium预编译包:
修改Dockerfile,替换原有的RUN apt-get install -yyq chromium=100.0.4889.0命令为以下内容:
# 下载对应版本的Chromium(Linux x64架构,匹配100.0.4889.0) RUN wget --no-verbose -O chromium.zip https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/987990/chromium-linux.zip # 创建目录并解压,整理文件结构 RUN mkdir -p /opt/chromium && unzip chromium.zip -d /opt/chromium && mv /opt/chromium/chrome-linux/* /opt/chromium/ && rm -rf chromium.zip /opt/chromium/chrome-linux # 设置可执行权限 RUN chmod +x /opt/chromium/chrome
之后在Puppeteer启动代码中指定Chromium的路径:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ executablePath: '/opt/chromium/chrome', args: ['--no-sandbox', '--disable-setuid-sandbox'] // Docker环境必须参数 }); // 后续业务逻辑 })();
方案2:更换基础镜像到更新的系统
node:10-slim基于Debian Stretch,软件源版本陈旧。可以换成基于Debian Bullseye的node镜像(比如node:16-slim),系统源内的软件版本更丰富,后续无论是手动下载还是尝试第三方源安装高版本Chromium都会更顺畅:
修改Dockerfile开头:
FROM node:16-slim
更换镜像后,依然可以采用方案1的手动下载方式确保版本完全匹配,这也是最稳定的选择。
注意事项
- 确认下载链接的架构与你的Docker环境匹配(上述链接为Linux x64,若为ARM架构需替换对应下载链接)。
- Docker环境下启动Chromium必须添加
--no-sandbox和--disable-setuid-sandbox参数,否则会启动失败。
内容的提问来源于stack exchange,提问作者Farad
相关产品推荐
相关产品推荐

