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/ 以瞭解如何在容器中啟動多個程序的說明。