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

Heroku环境下Puppeteer启动Chrome浏览器失败求助

解决方案:Puppeteer启动Chrome提示libatk-1.0.so.0缺失

核心问题分析

你遇到的错误本质是Puppeteer缓存了Linux版本的Chrome,但你的运行系统并非Linux,导致系统无法识别Linux专属的依赖库;或者你误以为没在Linux环境,但实际项目运行在Linux容器/虚拟机中(比如Docker、云服务器)。

具体解决步骤

1. 强制下载对应系统的Chrome版本

  • 先删除现有错误的缓存目录:手动删除/app/.cache/puppeteer文件夹
  • 根据你的实际系统设置环境变量,再重新安装依赖:
    • Windows系统:
      set PUPPETEER_SKIP_DOWNLOAD=false
      set PUPPETEER_PLATFORM=win32
      npm install
      
    • macOS Intel芯片:
      export PUPPETEER_SKIP_DOWNLOAD=false
      export PUPPETEER_PLATFORM=darwin
      npm install
      
    • macOS M系列芯片:
      export PUPPETEER_SKIP_DOWNLOAD=false
      export PUPPETEER_PLATFORM=darwin
      export PUPPETEER_ARCH=arm64
      npm install
      

2. 确认运行环境是否为Linux

如果你的项目实际部署在Linux服务器/容器中,直接安装缺失的依赖库:

  • Debian/Ubuntu系:
    sudo apt-get update && sudo apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2
    
  • CentOS/RHEL系:
    sudo yum install -y atk atk-bridge cups libdrm libxkbcommon libXcomposite libXdamage libXfixes libXrandr libgbm alsa-lib
    

3. 优化Puppeteer启动配置(Linux环境下)

除了已有的无沙箱参数,添加--disable-dev-shm-usage避免共享内存问题:

const browser = await puppeteer.launch({
  headless: false,
  args: [
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage'
  ]
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:02:36