首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:启动浏览器进程失败!产卵/usr/bin/usr浏览器ENOENT

错误:启动浏览器进程失败!产卵/usr/bin/usr浏览器ENOENT
EN

Stack Overflow用户
提问于 2022-07-21 14:29:54
回答 1查看 1.3K关注 0票数 -1

我试图在node.js上使用傀儡,它在我的本地Mac操作系统上工作得很好,但是当代码通过CI管道时,它会抛出以下错误

代码语言:javascript
复制
error: Error: Failed to launch the browser process! spawn /usr/bin/chromium-browser ENOENT
  
TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md

我尝试过对文档进行故障排除,但是给出的解决方案在我的情况下行不通。

代码语言:javascript
复制
* docker - 
       ENV CHROME_BIN="/usr/bin/chromium-browser" \
        PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
    RUN set -x \
        && apk update \
        && apk upgrade \
        && apk add --no-cache \
        udev \
        ttf-freefont \
        chromium \
        && npm install puppeteer



  *Node-
 const browser = await puppeteer.launch({
      headless: true,
      executablePath: '/usr/bin/chromium-browser',
      args: [
        '--no-sandbox',
        '--headless',
        '--disable-gpu',
        '--disable-dev-shm-usage'
      ]
    })
EN

回答 1

Stack Overflow用户

发布于 2022-08-18 08:48:41

当我试图在docker中运行节点容器时,也遇到了同样的问题。

我的环境正在使用:

20.10.12

  • Ubuntu版本20.04

  • Puppeteer版本^13.5.2 (非puppeteer-core)

  • Node版本16.0

)

您可以在Linux机器上运行ldd chrome | grep not,以检查缺少哪些依赖项。

进入正在运行的码头容器- docker exec -it [CONTAINER ID] /bin/bash。在此路径中运行上面的命令以查找缺少的依赖项- /node_modules/puppeteer/.local-chromium/linux-970485/chrome-linux

关于更详细的步骤,您可以遵循这个well explained answer。感谢@dhilt给出的答案。

在docker文件中添加缺少的依赖项。

Dockerfile (我不需要安装铬或铬浏览器)

代码语言:javascript
复制
RUN apt-get update \
    && apt-get -f install -y --no-install-recommends \
        fonts-liberation \
        libgtk-3-0 \
        libwayland-client0 \
        xdg-utils \
        libu2f-udev \
        libvulkan1 \
        libnss3 \
        libnspr4 \
        libatk1.0-0 \
        libatk-bridge2.0-0 \
        libcups2 \
        libdrm2 \
        libxkbcommon0 \
        libxcomposite1 \
        libxdamage1 \
        libxfixes3 \
        libxrandr2 \
        libgbm1 \
        libasound2 \
    && rm -rf /var/lib/apt/lists/*

nodefile.js ( bowser不是在本地安装的,所以不需要设置executablePath)

代码语言:javascript
复制
// linux
let browser = await puppeteer.launch({
        headless: true,
        args: ['-no-sandbox']
    });

如果答案有帮助,请在回复中注明,这样对其他社区成员是有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73068028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档