私はいくつかのテストを実行するためにgoogle-chrome --headlessを非rootユーザーとしてdockerコンテナー内で実行しようとしています。それを開始しようとするたびに、次のエラーがスローされます:
google-chrome --headless
新しい名前空間に移動できませんでした:PID名前空間はサポートされていますが、ネットワーク名前空間はサポートされていますが失敗しました:errno =操作は許可されていませんminidump.Illegal命令の生成に失敗しました
K8sクラスターで実行されるそのDockerコンテナー。オペレーティングシステムはUbuntu 16.04です。
名前空間が有効になっていて、ユーザーはroot以外です
これはセキュリティ上の問題であるため、-no-sandboxオプションを使用したくありません。
Helmを使用してデプロイされているため、docker run --security-opt = syscomp:unconfinedを使用できません。
コンテナ自体の中でchromeを設定する必要があるシステム権限がないのですか?
インターネットを広範囲に調査した後、私は答えを見つけたと思います:
サンドボックスセキュリティ上の理由から、Google Chromeはコンテナベースの環境で実行されている場合、サンドボックスを提供できません。使用するにはChromeコンテナベースの環境では、-no-sandboxフラグをChrome実行可能ファイルに渡します
したがって、私にとって--no-sandboxよりも優れたソリューションはないようです。非常に安全ではありませんが、実行時に "--no-sandbox"を使用しても安全であるとインターネット上で主張する人々がいますコンテナ内で保護されています。