跳至主要內容
版本:23.11.1

Docker

Puppeteer 提供了一個 Docker 映像檔,其中包含用於測試的 Chrome,以及所需的相依性與預先安裝的 Puppeteer 版本。該映像檔可透過GitHub Container Registry取得。最新的映像檔標記為 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://docker-docs.dev.org.tw/config/containers/multi-service_container/ 以瞭解如何在容器中啟動多個程序的說明。