2018-02-08

Dockerコンテナ内でChormeを起動するときは--no-sandboxオプションを渡す!!!1

Dockerコンテナ内ではLinuxのseccompという機能でシステムコールの呼び出しに制限をかけている。一方、Chromeは通常サンドボックス機能が有効になっている。が、Dockerコンテナ内ではシステムコールの呼び出しに制限がかかっているので、Chromeのサンドボックスを作るために必要なシステムコール自体を発行できない。よって、そのままではDockerコンテナ内でChromeを起動できない。起動時にオプションで--no-sandboxを渡してサンドボックスをやめると起動できるようになる。

これを読んだりした。Eliminate –no-sandbox option · Issue #8 · jlund/docker-chrome-pulseaudio

そもそも--no-sandboxで起動するのは危険という意見もありそうだが、Railsのsystem testでHeadless Chromeを使いたいだけなのでよしとしたい。

勝因はコンテナ内に入ってgoogle-chrome --headless --disable-gpuするだけではChromeが起動しないことにようやく気づいて原因切り分けできたところ。修行が足りない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です