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

如何在Docker及Ubuntu生产环境中使用Headless Chrome?

解决Docker及Ubuntu 22.04环境下Headless Chrome转PDF的问题

一、Docker环境(Ubuntu 22.04镜像)

Docker容器默认无法运行snap服务,别尝试用snap安装Chromium,直接安装Deb包版本即可:

  1. 修改Dockerfile,替换默认源并安装非snap版Chromium:
FROM ubuntu:22.04

RUN apt-get update && apt-get install -y --no-install-recommends \
    software-properties-common \
    gnupg2 \
    && add-apt-repository ppa:linuxuprising/chromium \
    && apt-get update && apt-get install -y --no-install-recommends \
    chromium-browser \
    libnss3 \
    libx11-xcb1 \
    libxcb-dri3-0 \
    libgbm1 \
    fonts-liberation \
    && rm -rf /var/lib/apt/lists/*

这个PPA提供的是非snap格式的Chromium Deb包,会替换系统默认的snap链接。

  1. 调整PHP代码中的浏览器启动参数,添加Docker环境必需的配置:
$browser = (new BrowserFactory('chromium-browser'))->createBrowser([
    'windowSize' => [1920, 1080],
    'arguments' => [
        '--headless=new', // 新版无头模式,兼容性更强
        '--no-sandbox',   // Docker环境必须禁用沙箱,否则启动失败
        '--disable-dev-shm-usage', // 解决容器内共享内存不足问题
        '--disable-gpu',
        '--no-first-run',
        '--no-default-browser-check',
    ]
]);

$page = $browser->createPage();
$page->setHtml($html);

return base64_decode(
    $page->pdf([
        'printBackground' => true
    ])->getBase64()
);

二、无Docker的Ubuntu 22.04生产环境

两种方案任选:

方案1:通过snap安装Chromium

先修复snap服务环境:

  1. 安装snapd:
sudo apt update && sudo apt install -y snapd
  1. 启动并设置snapd开机自启:
sudo systemctl enable --now snapd.socket
sudo systemctl start snapd
  1. 安装Chromium:
sudo snap install chromium

安装完成后即可正常运行原有代码,若使用无头模式,记得保留--headless=new这类参数。

方案2:安装Deb版Chromium(避开snap)

和Docker环境步骤类似,通过PPA安装非snap版本:

  1. 安装依赖并添加PPA:
sudo apt update && sudo apt install -y software-properties-common
sudo add-apt-repository ppa:linuxuprising/chromium
  1. 安装Chromium:
sudo apt update && sudo apt install -y chromium-browser

这种方式无需依赖snapd,直接用系统apt包管理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:19:58