GitHub Actions の Ubuntu 24.04 で Puppeteer が動かない問題
表題の通り、Ubuntu 24.04 (記事公開時点での latest) を使っていると、Puppeteer が動かない問題がある。
[Bug]: “No usable sandbox!” with user namespace cloning enabled · Issue #12818 · puppeteer/puppeteer
これは、Ubuntu の AppArmor が Puppeteer がダウンロードした Chrome のバイナリを実行させないようにしているために起きている。Ubuntu 22.04 (ubuntu-22.04
) を使うことでも回避できるのだが、Ubuntu 24.04 を使いたい場合には、SUID sandbox という古い sandbox で実行することで回避できるようである。
GitHub Actions の workflow に落とし込むと以下のようになる。
jobs: task: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v5
- run: | npm ci
# https://pptr.dev/troubleshooting#issues-with-apparmor-on-ubuntu - name: Prepare puppeteeer SUID sandbox id: sandbox run: | SANDBOX=$(find ~/.cache/puppeteer -type f -name chrome_sandbox | head -n1) sudo chown root:root "$SANDBOX" sudo chmod 4755 "$SANDBOX" echo "sandbox_path=$SANDBOX" >> "$GITHUB_OUTPUT"
- run: | npm run task env: CHROME_DEVEL_SANDBOX: ${{ steps.sandbox.outputs.sandbox_path }}