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

Docker容器中Puppeteer随机启动失败问题求助

Docker容器内Puppeteer随机启动失败问题

我有一个部署在VPS上的Node项目,运行在Docker容器中,项目会启动多个Puppeteer浏览器,但存在随机启动失败的问题。一旦出现故障,后续可能长时间无法恢复正常;全新OS镜像上几乎总能成功启动,但后续会出现问题,且该问题仅在部分VPS上出现。

Puppeteer启动代码

const browser = await puppeteer.launch({
      headless: false,
      executablePath: '/usr/bin/google-chrome-stable',
      userDataDir,
      args: [
        `--disable-extensions-except=${path.join(
          extensionDir,
          'extension'
        )}`,
        `--load-extension=${path.join(extensionDir, 'extension')}`,
        '--no-sandbox',
        '--disable-setuid-sandbox',
        `--proxy-server=${ip}:${port}`,
      ],
    });

我使用xvfb以headful模式(headless: false)启动Chrome。

遇到的错误

错误1

发生错误: Error: 无法启动浏览器进程!
[0117/175710.345450:ERROR:nacl_helper_linux.cc(354)] NaCl辅助进程在无沙箱环境下运行!
很可能你需要正确配置SUID沙箱


故障排查: https://pptr.dev/troubleshooting

错误2

ProtocolError: 协议错误(Target.createTarget): 无法打开新标签页
    在 <instance_members_initializer> (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:86:14)
    在 new Callback (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:90:16)
    在 CallbackRegistry.create (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:22:26)
    在 Connection._rawSend (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Connection.js:80:26)
    在 Connection.send (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Connection.js:74:21)
    在 CdpBrowser._createPageInContext (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Browser.js:178:53)
    在 CdpBrowserContext.newPage (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Browser.js:303:30)
    在 CdpBrowser.newPage (/app/src/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Browser.js:175:43)
    在 ensureLoggedIn (/app/src/index.js:158:32)
    在 process.processTicksAndRejections (node:internal/process/task_queues:95:5)

已尝试的无效/部分有效方法

  • 清理userDataDir:偶尔有效,但成功率不高
  • 执行sudo reboot now、docker stop <name> && docker start <name>:并非总能解决问题
  • 删除并重建Docker容器/镜像:同样无法保证每次有效

Docker容器配置了--restart=always,但有时无法自动重启,不确定是浏览器重启过快还是其他原因导致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:53:20