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

Macbook Pro M1 MAX环境下Laravel Sail中Puppeteer启动失败求助

解决方案

问题根源是你在本地(Mac ARM64)安装的Puppeteer下载的是适配macOS的Chromium二进制文件,但Laravel Sail的Docker容器是Linux环境,无法识别使用本地的macOS版本Chromium,因此报错找不到对应浏览器。

以下是几种可行的解决办法:

方法1:在Docker容器内安装Puppeteer

  1. 进入Sail容器:
    sail shell
    
  2. 在容器内执行Puppeteer安装命令(容器会自动下载适配Linux的Chromium版本):
    npm install puppeteer
    
    若需要跳过本地已有的安装缓存,可加上强制重新下载参数:
    PUPPETEER_FORCE_DOWNLOAD=true npm install puppeteer
    

方法2:配置Puppeteer使用容器内的系统级Chromium

  1. 修改Sail的PHP容器Dockerfile(路径通常为docker/[php版本]/php/Dockerfile),添加系统级Chromium安装命令:
    RUN apt-get update && \
        apt-get install -y --no-install-recommends chromium-browser && \
        rm -rf /var/lib/apt/lists/*
    
  2. 重新构建Sail容器:
    sail build --no-cache
    
  3. 在代码中指定Puppeteer使用系统级Chromium,或者设置环境变量:
    • 代码中配置示例(以Browsershot为例):
      Browsershot::url('https://example.com')
          ->setChromePath('/usr/bin/chromium-browser')
          ->save('example.pdf');
      
    • 或在.env文件中添加环境变量:
      PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
      

方法3:调整Puppeteer安装时的环境变量(适合本地+容器兼容场景)

在本地执行安装时,同时指定下载Linux版本的Chromium,配合容器内的路径配置:

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=false PUPPETEER_TARGET_PLATFORM=linux npm install puppeteer

之后在容器内运行时,通过环境变量指定Puppeteer使用本地下载的Linux版本二进制文件路径(通常在node_modules/puppeteer/.local-chromium/linux-[版本号]/chrome-linux/chrome)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:54:38