表題の通り、GCP+Docker環境でpuppeteerのビルドが通らなかったので原因と対処法を備忘録として残しておく。
結論
Dockerfileに以下内容を追加すると直った。
#chromiumのDLをスキップ
ENV PUPPETEER_SKIP_DOWNLOAD=true
何が起きていたか
ビルドのyarn install puppeteer
の段階で処理が止まっていた。
原因としてはpuppeteer
をinstallすると同時にchromium
もダウンロードしようとする。
このchromium
が容量的に大きく、依存関係のチェックなどでビルドに詰まる可能性が高いとのことだった。
特にGCP+Dockerの構成だとよく起きるらしい。
対象法
- まず、
puppeteer
のinstallの際にchromium
をDLしないよう以下記述をDokcerfileに記載した
#chromiumのDLをスキップ
ENV PUPPETEER_SKIP_DOWNLOAD=true
2.以下内容をDockerfileに追加し、apk側でchromium
をDLするようにした
RUN apk add --no-cache \
chromium=124.0.6367.78-r0 \
3.以下内容をDockerfileに追加し、apkでDLしたchromium
を使う設定にした
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
以上でビルドがすんなり通った