VSCodeのPython Djangoフレームワークで開発するとき、Python拡張機能だけではLint(問題タブのエラーや警告表示)に対応していません。解消するにはDjango用のLintをインス…
Seleniumをdocker上で実行した場合のパフォーマンスや、特定のサイトを閲覧した時だけエラーが発生する場合の原因と対処法です。
原因
Seleniumのコンテナのメモリはデフォルトで64MBしかセットされておらず、メモリ不足によってパフォーマンスの低下・エラーが発生している可能性があります。
エラーが発生している場合は以下の曖昧な内容のエラーが表示されます。
selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id
対処法
公式から2種類の対処法が記載されています。
[GitHub] SeleniumHQ / docker-selenium
ホストのメモリ領域(/dev/shm)をコンテナにマウントする
ホストがLinuxであれば、メモリ領域をコンテナにマウントすることでコンテナとメモリを共有できます。
docker run -it -v /dev/shm:/dev/shm [image]
コンテナにサイズを指定してメモリを共有する
ホストが他のOSであれば、コンテナ起動時の引数でコンテナに共有するメモリのサイズを指定できます。
ホストのOSに依存しないので、こちらがおすすめです。
docker run -it --shm-size=2gb [image]
docker-composeで指定する場合は、shm_size: 2gb
を追記します。
容量は必要に応じて変更してください。
version: '3' services: chrome: image: selenium/node-chrome-debug:3.141.59 shm_size: 2gb
コメントを書く