このプロジェクトは、何千時間もの時間を費やしたボランティアの貢献者によって実現され、Apache License 2.0 に基づいてソース コードを自由に利用できるようになりました。
これらの Docker イメージには、使用法を簡素化するためのいくつかのタグが付属しています。いずれかのリリースで確認してください。
新しいリリースの通知を受け取るには、自分自身を「リリースのみ」ウォッチャーとして追加します。
これらのイメージは、Selenium Docker Hub の Docker Hub レジストリに公開されます。
これらの Docker イメージを使用するのにサポートが必要ですか? https://www.selenium.dev/support/ までお問い合わせください。
--shm-size="2g"
docker run -d -p 4444:4444 -p 7900:7900 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101
WebDriver テストを http://localhost:4444 に指定します。
それでおしまい!
(オプション) コンテナー内で何が起こっているかを確認するには、http://localhost:7900/?autoconnect=1&resize=scale&password=secret にアクセスします。
コンテナアクティビティの視覚化の詳細については、「デバッグ」セクションを確認してください。
☝️ ブラウザを含むイメージに対してdocker run
実行する場合は、フラグ--shm-size=2g
使用してホストの共有メモリを使用してください。
☝️ 特定のブラウザーとグリッドのバージョンを固定するには、常に完全なタグを含む Docker イメージを使用してください。詳細については、「タグ付け規則」を参照してください。
イメージ タグ ベースの4.21.0
以降、このプロジェクトでサポートされるアーキテクチャは次のとおりです。
建築 | 利用可能 |
---|---|
x86_64 (別名 amd64) | ✅ |
aarch64 (別名 arm64/armv8) | ✅ |
armhf (別名 arm32/armv7l) | ❌ |
マルチ アーキテクチャ イメージでは次のブラウザを使用できます。
建築 | クロム | クロム | Firefox | 角 |
---|---|---|---|---|
x86_64 (別名 amd64) | ✅ | ✅ | ✅ | ✅ |
aarch64 (別名 arm64/armv8) | ❌ | ✅ | ✅ | ❌ |
armhf (別名 arm32/armv7l) | ❌ | ❌ | ❌ | ❌ |
注記:
Google は、Linux/ARM プラットフォーム用の Chrome ( google-chrome
) を構築していません。したがって、Chrome (ノードおよびスタンドアロン) イメージは AMD64 でのみ使用できます。同様に、Microsoft は Linux/ARM プラットフォーム用の Edge ( microsoft-edge
) を構築しません。
パフォーマンスと安定性の問題のため、ARM64 プラットフォーム上のエミュレーションで AMD64 イメージを実行することはお勧めできません。
Linux/ARM の場合は、オープンソースの Chromium ブラウザを使用します。 Chromium (ノードおよびスタンドアロン) イメージはマルチ アーキテクチャで利用できます。
$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest
マルチ アーチ イメージは、リソース クラス Linux/ARM64 を使用して CircleCI でテストされます。以下のステータスを参照してください。
Apple M シリーズや Raspberry Pi などのプラットフォームで実行される実験的な Docker コンテナ イメージの場合、seleniumhq-community/docker-seleniarm のリポジトリが、Seleniarm Docker Hub レジストリで公開されるイメージを提供しました。
これらの画像の詳細については、問題 #1076 を参照してください。
これで、フォーク seleniumhq-community/docker-seleniarm がマージされました。
Docker Engine で実験的機能の containerd イメージ ストアを有効にすることをお勧めします。 containerd
、単一のイメージ タグで、さまざまな OS およびハードウェア アーキテクチャをカバーするさまざまなバリアントを参照できるマルチプラットフォーム イメージを理解します。これにより、さまざまなプラットフォーム間でイメージを構築、保存、配布するプロセスが簡素化されます。
Docker Engine でその機能を有効にする単一のコマンド:
make set_containerd_image_store
マルチプラットフォーム用のすべてのイメージをビルドするには、次のコマンドを実行します。
PLATFORMS=linux/amd64,linux/arm64 make build
特定のプラットフォーム用のイメージをビルドするには、次のコマンドを実行します。
PLATFORMS=linux/arm64 make build
デフォルトでは、 PLATFORMS
変数を指定しないと、イメージはlinux/amd64
プラットフォーム用にビルドされます。
Nightly イメージは、このリポジトリのメイン ブランチの最新の変更を使用して、上流プロジェクト Selenium の Nightly ビルドの上に構築されます。イメージタグはnightly
です。これは、実稼働環境でイメージを使用することはお勧めできません。これはテストのみを目的としています。
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:nightly
Nightly イメージを開始するには、docker compose を確認してください docker-compose-v3-full-grid-nightly.yml
テストを実行したり、プレリリース ブラウザーで作業したりするために、Google、Mozilla、Microsoft は、間もなく一般向けにリリースされるものを確認する必要があるユーザー向けに、開発およびベータ版のリリース チャネルを維持しています。
スタンドアロン モードで実行する手順は次のとおりです。
Chrome ベータ版:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:beta
Chrome 開発者:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:dev
Firefox ベータ版:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:beta
Firefox 開発者:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:dev
エッジベータ:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:beta
エッジ開発:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:dev
docker-compose-v3-beta-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-beta-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-beta-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "
docker-compose-v3-dev-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "
Dev および Beta チャネルのコンテナー イメージの詳細については、Docker Selenium を使用した Dev および Beta チャネル ブラウザーに関するブログ投稿を参照してください。
Firefox
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101
クロム
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101
角
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-edge:4.26.0-20241101
注: ポート4444
で同時に実行できるスタンドアロン コンテナは 1 つだけです。
イメージを実行し、ハブとノードを含むグリッドを作成するにはさまざまな方法があります。次のオプションを確認してください。
ハブとノードは同じネットワーク内に作成され、コンテナ名で相互に認識されます。最初のステップとして、Docker ネットワークを作成する必要があります。
$ docker network create grid
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-chrome:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-edge:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-firefox:4.26.0-20241101
$ docker network create grid
$ docker run - d - p 4442 - 4444 : 4442 - 4444 -- net grid -- name selenium - hub selenium / hub: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - chrome: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - edge: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - firefox: 4.26 . 0 - 20241101
グリッドの使用が完了し、コンテナーが終了したら、次のコマンドを使用してネットワークを削除できます。
# Removes the grid network
$ docker network rm grid
ハブとノードは異なるマシン/VM 上に作成されます。適切に通信するには、相互の IP を認識する必要があります。同じマシン/VM 上で複数のノードを実行する場合は、異なるポートを公開するようにノードを構成する必要があります。
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.26.0-20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 2>
selenium/node-chrome:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 2> `
selenium / node - chrome: 4.26 . 0 - 20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 3>
selenium/node-edge:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 3> `
selenium / node - edge: 4.26 . 0 - 20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
selenium/node-firefox:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
selenium / node - firefox: 4.26 . 0 - 20241101
$ docker run -d -p 5556:5556
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
-e SE_NODE_PORT=5556
selenium/node-chrome:4.26.0-20241101
$ docker run - d - p 5556 : 5556 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
- e SE_NODE_PORT = 5556 `
selenium / node - chrome: 4.26 . 0 - 20241101
Docker Compose は、グリッドを開始する最も簡単な方法です。以下のリンクされたリソースを使用してローカルに保存し、各ファイルの先頭にある実行手順を確認してください。
docker-compose-v2.yml
docker-compose-v3.yml
グリッドを停止し、作成されたコンテナーをクリーンアップするには、 docker compose down
実行します。
docker-compose-v3-swarm.yml
Selenium Grid をすべてのコンポーネントから切り離して開始することができます。わかりやすくするために、docker compose を使用した例のみを示します。ファイルをローカルに保存し、その上で実行手順を確認します。
docker-compose-v3-full-grid.yml
環境変数 | オプション | タイプ | デフォルト値 | 説明 |
---|---|---|---|---|
SE_REJECT_UNSUPPORTED_CAPS | --reject-unsupported-caps | ブール値 | false | リクエストされた機能をグリッドがサポートしていない場合、ディストリビューターがリクエストを即座に拒否できるようにします。 |
SE_HEALTHCHECK_INTERVAL | --healthcheck-interval | 整数 | 120 | これにより、一定間隔後にサーバーがすべてのノードに正常に ping できるようになります。 |
テストの実行は、 selenium/video:ffmpeg-7.1-20241101
Docker イメージを使用して記録できます。ブラウザが実行されているコンテナごとに 1 つのコンテナが必要です。これは、5 つのノード/スタンドアロン コンテナーを実行している場合、5 つのビデオ コンテナーが必要となり、マッピングは 1-1 であることを意味します。
現在、このマッピングを行う唯一の方法は手動です (コンテナーを手動で起動するか、 docker compose
使用して行うかのいずれかです)。私たちはこのプロセスを繰り返しており、おそらくこのセットアップは将来的にはよりシンプルになるでしょう。
私たちが提供するビデオ Docker イメージは、jrottenberg/ffmpeg プロジェクトによって提供される ffmpeg Ubuntu イメージに基づいています。このイメージを提供し、作業を簡素化していただきありがとうございます。
イメージ タグ ベースの4.20.0
以降、ビデオ Docker イメージはマルチプラットフォームで利用できるため、linuxserver/docker-ffmpeg プロジェクトによって提供される FFmpeg Ubuntu イメージに基づいています。私たちのプロジェクトを簡素化し、複数のアーキテクチャのサポートを進めるのに協力していただきありがとうございます。
注:
/videos
ディレクトリに保存されます。ローカル ディレクトリをマップしてビデオを取得します。FILE_NAME
環境変数を使用してビデオ ファイル名を必ず上書きしてください。この例は、コンテナを手動で起動する方法を示しています。
$ docker network create grid
$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-7.1-20241101
# Run your tests
$ docker stop video && docker rm video
$ docker stop selenium && docker rm selenium
コンテナーを停止して削除すると、マシンの/tmp/videos
ディレクトリにビデオ ファイルが表示されるはずです。
以下は、ハブといくつかのノードを使用した例です。
docker-compose-v3-video.yml
テストでのメタデータのサポートに基づいています。 SE_VIDEO_FILE_NAME=auto
を有効にし、テストにメタデータを追加して、ビデオ レコーダーがブラウザ ノードでサイドカーにデプロイされると、ビデオ ファイル名は機能se:name
の値を抽出し、それをビデオ ファイル名として使用します。
たとえば、Python バインディングでは次のようになります。
from selenium . webdriver . chrome . options import Options as ChromeOptions
from selenium import webdriver
options = ChromeOptions ()
options . set_capability ( 'se:name' , 'test_visit_basic_auth_secured_page (ChromeTests)' )
driver = webdriver . Remote ( options = options , command_executor = "http://localhost:4444" )
driver . get ( "https://selenium.dev" )
driver . quit ()
出力ビデオ ファイル名はtest_visit_basic_auth_secured_page_ChromeTests_<sessionId>.mp4
になります。
テスト名がテスト フレームワークによって処理され、確実に一意である場合は、 SE_VIDEO_FILE_NAME_SUFFIX=false
を設定して、ビデオ ファイル名に追加されるセッション ID を無効にすることもできます。
ファイル名が長くならないように、ファイル名は 255 文字に切り詰められます。また、 space
文字は_
に置き換えられ、ファイル名にはアルファベット、数字、 -
(ハイフン)、 _
(アンダースコア)の文字のみが残ります。
トリム正規表現は、 SE_VIDEO_FILE_NAME_TRIM_REGEX
環境変数を設定することでカスタマイズできます。デフォルト値は[:alnum:]-_
です。正規表現は bash のtr
コマンドと互換性がある必要があります。
デプロイメント レベルでは、レコーダー コンテナーは常に稼働しています。さらに、セッション機能se:recordVideo
を介してビデオ録画プロセスを無効にすることもできます。たとえば、Python バインディングでは次のようになります。
options . set_capability ( 'se:recordVideo' , False )
レコーダー コンテナーでは、ビデオ録画プロセスを開始するかどうかを決定する前に、ノード セッション ID に基づいてハブでクエリ GraphQL を実行し、capability のse:recordVideo
の値を抽出します。
注: GraphQL エンドポイントに到達するには、レコーダー コンテナーがハブ URL を知っている必要があります。ハブ URL は、環境変数SE_NODE_GRID_URL
を介して渡すことができます。たとえば、 SE_NODE_GRID_URL
http://selenium-hub:4444
です。
RCLONEはビデオレコーダーイメージにインストールされています。これを使用して、ビデオをクラウド ストレージ サービスにアップロードできます。上記のビデオ録画に加えて、次の環境変数を設定することでアップロード機能を有効にすることができます。
version : " 3 "
services :
chrome_video :
image : selenium/video:ffmpeg-7.1-20241101
depends_on :
- chrome
environment :
- DISPLAY_CONTAINER_NAME=chrome
- SE_VIDEO_FILE_NAME=auto
- SE_VIDEO_UPLOAD_ENABLED=true
- SE_UPLOAD_DESTINATION_PREFIX=s3://mybucket/path
- RCLONE_CONFIG_S3_TYPE=s3
- RCLONE_CONFIG_S3_PROVIDER=GCS
- RCLONE_CONFIG_S3_ENV_AUTH=true
- RCLONE_CONFIG_S3_REGION=asia-southeast1
- RCLONE_CONFIG_S3_LOCATION_CONSTRAINT=asia-southeast1
- RCLONE_CONFIG_S3_ACL=private
- RCLONE_CONFIG_S3_ACCESS_KEY_ID=xxx
- RCLONE_CONFIG_S3_SECRET_ACCESS_KEY=xxx
- RCLONE_CONFIG_S3_ENDPOINT=https://storage.googleapis.com
- RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true
SE_VIDEO_FILE_NAME=auto
セッション ID をビデオ ファイル名として使用します。これにより、アップロードするビデオ ファイル名が確実に一意になります。ビデオ ファイル名の構築は、ノード エンドポイント/status
(およびオプションの GraphQL エンドポイント) に基づいて自動的に機能し、セッション ID と機能を取得します。
SE_VIDEO_UPLOAD_ENABLED=true
指定すると、ビデオのアップロード機能が有効になります。バックグラウンドで、アップローダーが使用して続行するためのファイルと宛先を含むパイプファイルが作成されます。
SE_VIDEO_INTERNAL_UPLOAD=true
コンテナにインストールされている RCLONE をアップロードに使用します。アップロードに別のサイドカー コンテナを使用する場合は、 false
に設定します。
モードごとの ENV 変数 | ハブ/ノード | スタンドアロンの役割 | ダイナミックグリッド |
---|---|---|---|
SE_VIDEO_RECORD_STANDALONE (必須) | false (デフォルト) | true | true |
DISPLAY_CONTAINER_NAME (必須) | ユーザー入力 | ユーザー入力 | (必須ではありません) |
SE_NODE_PORT (オプション) | 5555 | 4444 | (必須ではありません) |
SE_NODE_GRID_URL (オプション) | ユーザー入力 | (必須ではありません) | (必須ではありません) |
プレフィックスRCLONE_
が付いた環境変数の場合、リモート設定を RCLONE に渡すために使用されます。 RCLONE 構成の詳細については、ここを参照してください。動的グリッドで使用する場合、これらの変数は接頭辞SE_
と組み合わせる必要があります (例: SE_RCLONE_
。詳細については、以下のリファレンスを参照してください。
ハブとノードのビデオの録画とアップロードを構成する: docker-compose-v3-video-upload.yml
スタンドアロン ロールのビデオ録画とアップロードを構成する: docker-compose-v3-video-upload-standalone.yml
動的グリッド (node-docker) のビデオの録画とアップロードを構成します: docker-compose-v3-video-upload-dynamic-grid.yml
Dynamic Grid スタンドアロン (standalone-docker) のビデオの録画とアップロードを構成します: testing/docker-compose-v3-test-standalone-docker.yaml
環境変数 | デフォルト値 | 説明 |
---|---|---|
SE_UPLOAD_RETAIN_LOCAL_FILE | false | アップロードに成功した後、ローカル ファイルを保持する |
SE_UPLOAD_COMMAND | copy | ファイル転送にはRCLONEコマンドを使用します。ローカル ファイルの保持がfalse 場合にmove 強制する |
SE_UPLOAD_OPTS | -P --cutoff-mode SOFT --metadata --inplace | RCLONEコマンドに属する他のオプションを設定できます。 |
SE_UPLOAD_CONFIG_FILE_NAME | upload.conf | 環境変数プレフィックス SE_RCLONE_* を介して設定するのではなく、リモート ホストの構成ファイル |
SE_UPLOAD_CONFIG_DIRECTORY | /opt/bin | configファイルのディレクトリ(別ディレクトリのconfファイルがマウントされている場合は変更してください) |
Grid 4 には、オンデマンドで Docker コンテナを起動する機能があります。これは、新しいセッション リクエストごとにバックグラウンドで Docker コンテナを起動し、そこでテストが実行され、テストが完了するとコンテナが破棄されることを意味します。
この実行モードは、スタンドアロン ロールまたはノード ロールのいずれかで使用できます。 「動的」実行モードには、コンテナーの開始時にどの Docker イメージを使用するかを指示する必要があります。さらに、グリッドは Docker デーモンの URI を知っている必要があります。この設定はローカルのtoml
ファイルに配置できます。
このファイルをローカルに保存し、たとえばconfig.toml
名前を付けることができます。
[ docker ]
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
# start a container with the given image.
configs = [
" selenium/standalone-firefox:4.26.0-20241101 " , ' {"browserName": "firefox"} ' ,
" selenium/standalone-chrome:4.26.0-20241101 " , ' {"browserName": "chrome"} ' ,
" selenium/standalone-edge:4.26.0-20241101 " , ' {"browserName": "MicrosoftEdge"} '
]
host-config-keys = [ " Dns " , " DnsOptions " , " DnsSearch " , " ExtraHosts " , " Binds " ]
# URL for connecting to the docker daemon
# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.
# 127.0.0.1 is used because internally the container uses socat when /var/run/docker.sock is mounted
# If var/run/docker.sock is not mounted:
# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.
# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,
# then use http://host.docker.internal:2375.
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
url = " http://127.0.0.1:2375 "
# Docker image used for video recording
video-image = " selenium/video:ffmpeg-7.1-20241101 "
# Uncomment the following section if you are running the node on a separate VM
# Fill out the placeholders with appr