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

如何在执行build-administration.sh时禁用Chromium下载复用已有版本

Puppeteer Chromium自动下载禁用及已有版本复用方案

核心逻辑

Puppeteer安装阶段的Chromium下载逻辑由内置环境变量控制,无需修改源码、构建脚本或业务代码,即可直接关闭自动下载、指定复用外部已有的Chromium程序。

操作步骤

  • 执行npm install、运行build-administration.sh构建脚本前,先设置环境变量PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true。变量生效后puppeteer的install.js会直接跳过Chromium拉取流程,从根源上避免重复下载拖慢构建速度。
  • 提前将版本匹配的Chromium存放到镜像内固定路径:你当前使用的puppeteer@13.7.0适配Chromium版本为r982053,和日志中记录的下载版本完全一致,直接复用该版本即可,不会出现兼容性问题。
  • 额外设置环境变量PUPPETEER_EXECUTABLE_PATH,值为预存Chromium可执行文件的绝对路径。配置完成后Puppeteer运行时会直接调用该路径的浏览器程序,不会查找node_modules下默认的.local-chromium目录内容。

Dockware环境配置示例

如果通过Dockerfile构建镜像,直接在执行构建命令前声明环境变量即可:

# 关闭Puppeteer自动下载Chromium逻辑
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
# 指定预存Chromium的可执行文件路径,按实际存放位置修改
ENV PUPPETEER_EXECUTABLE_PATH=/opt/build-cache/chromium-982053/chrome

# 正常执行原有构建流程
RUN /var/www/html/bin/build-administration.sh

如果是临时进入容器执行构建,可以在执行命令前临时传入环境变量:

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
PUPPETEER_EXECUTABLE_PATH=/opt/build-cache/chromium-982053/chrome \
./build-administration.sh

优化注意事项

  • 可以将r982053版本的Chromium直接预置到dockware基础镜像的固定缓存目录,后续所有构建任务都可以直接复用,无需重复拉取。
  • 如果不想修改执行路径,也可以提前把下载好的Chromium目录放到/var/www/html/vendor/shopware/administration/Resources/app/administration/node_modules/puppeteer/.local-chromium/linux-982053路径下,配合跳过下载的环境变量即可正常运行。但该方案依赖node_modules目录结构,npm依赖重装时容易被覆盖,更推荐使用指定外部执行路径的方案。
  • 不要跨大版本复用Chromium,否则会出现Puppeteer API与浏览器内核不兼容的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:21:25