Docker
Puppeteer 提供了一个 Docker 镜像,其中包含 Chrome for Testing 以及所需的依赖项和预装的 Puppeteer 版本。该镜像可通过 GitHub 容器注册表获取。最新的镜像标记为 latest
,其他标签与 Puppeteer 版本匹配。例如,
docker pull ghcr.io/puppeteer/puppeteer:latest # pulls the latest
docker pull ghcr.io/puppeteer/puppeteer:16.1.0 # pulls the image that contains Puppeteer v16.1.0
该镜像旨在以沙盒模式运行浏览器,因此,运行该镜像需要 SYS_ADMIN
功能。
用法
要直接使用 Docker 镜像,请运行
docker run -i --init --cap-add=SYS_ADMIN --rm ghcr.io/puppeteer/puppeteer:latest node -e "$(cat path/to/script.js)"
其中 path/to/script.js
是相对于您的工作目录的路径。请注意,由于浏览器在沙盒模式下运行,该镜像需要 SYS_ADMIN
功能。
如果您需要基于不同的基础镜像构建镜像,可以使用我们的 Dockerfile
作为起点。
注意
请务必通过 --init
标志或自定义 ENTRYPOINT
指定初始化进程,以确保 Puppeteer 启动的所有进程都得到妥善管理。
dbus
该镜像为 Chrome 安装和配置了 dbus。通常,您在无头模式下不需要 dbus,但您可能会在浏览器控制台中看到警告。您可以在启动应用程序之前启动 dbus 服务
sudo service dbus start
有关如何在容器中启动多个进程的说明,请参阅 https://docs.docker.net.cn/config/containers/multi-service_container/。