Docker化Puppeteer时Chrome连接超时及适配版本获取问题
问题:Docker化Puppeteer截图应用时浏览器启动超时
本地运行Puppeteer网页截图流程正常,但Docker化后出现以下错误:
Unable to launch browser, error message: Timed out after 30000 ms while trying to connect to the browser! Only Chrome at revision r1069273 is guaranteed to work.
当前Dockerfile安装配置
RUN wget -O ./google-chrome-x64.zip "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1036826%2Fchrome-linux.zip?generation=1660863194027156&alt=media" \ && unzip google-chrome-x64.zip -d /usr/local \ && chmod 0755 /usr/local/chrome-linux/chrome \ && rm google-chrome-x64.zip # matching chromedriver RUN wget -O chromedriver-x64.zip "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1036826%2Fchromedriver_linux64.zip?generation=1660863199489297&alt=media" \ && unzip chromedriver-x64.zip -d /usr/local \ && chmod 0755 /usr/local/chromedriver_linux64/chromedriver \ && rm chromedriver-x64.zip RUN dnf install -y \ nss \ alsa-lib atk at-spi2-atk cups-libs gtk3 libdrm\ libXcomposite libXcursor libXdamage libXext libXi libXrandr libXScrnSaver libXtst \ mesa-libgbm pango \ xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-fonts-cyrillic \ xorg-x11-fonts-misc xorg-x11-fonts-Type1 xorg-x11-utils \ && update-crypto-policies --set LEGACY ENV PATH="/usr/local/chrome-linux:${PATH}"
Puppeteer集群实例化代码
const cluster = await Cluster.launch({ concurrency: Cluster.CONCURRENCY_CONTEXT, maxConcurrency: 3, puppeteer, puppeteerOptions: { executablePath: config.chrome.path, headless: true, args:[ '--no-sandbox', '--disable-dev-shm-usage', '--disable-gpu', '--disable-default-apps', '--disable-extensions', '--disable-background-networking', '--disable-setuid-sandbox', ] }, retryLimit: 1, retryDelay: 30000, timeout: 160000 });
适配r1069273版本的下载URL
将Dockerfile中的旧版本URL替换为以下地址即可:
Chrome下载URL:
https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1069273%2Fchrome-linux.zip?alt=mediaChromeDriver下载URL:
https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1069273%2Fchromedriver_linux64.zip?alt=media
说明
替换逻辑很简单:将原URL中的版本号1036826替换为目标版本1069273,同时可以移除generation参数(该参数是文件的生成标识,可能随时间失效,仅保留alt=media即可保证正常下载)。
相关版本信息
- Node.js版本:v14.21.1
- Puppeteer及puppeteer-core版本:19.5.2
- puppeteer-cluster版本:0.23.0
内容的提问来源于stack exchange,提问作者Wenger
相关产品推荐
相关产品推荐

