結論
HUB_PORT_4444_TCP_ADDR
及びHUB_PORT_4444_TCP_PORT
をenvironment
に指定する.
version: '2'
services:
hub:
image: selenium/hub
ports:
- '4444:4444'
chrome:
image: selenium/node-chrome
environment:
- HUB_PORT_4444_TCP_ADDR=hub # 各自の環境に合わせて書き換えること
- HUB_PORT_4444_TCP_PORT=4444 # 各自の環境に合わせて書き換えること
depends_on:
- hub
depends_on
は指定しなくても動作するが,無駄な処理が減るので指定したほうがよい.
docker-composeのバージョンが1.9.0よりも古い場合は,v2形式にlinks
を指定しても動くかもしれない.
以下に動作確認済みのdocker-compose.ymlを保存してある.
https://github.com/masnagam/docker-compose-collection/tree/master/selenium-grid
Selenium Grid Hubをdocker-composeで起動
SeleniumのDockerイメージが提供されているが,これをdocker-composeで動かす例として,docker-compose.yml(version 1)形式を使用する例が見つかる.
-
Running a Selenium Grid with docker-compose
- これ以外にも何件か見つかるが,基本的には同じ内容なので省略
試しにv2形式に書き直してみたが,どうもうまく動かない.
version: '2'
services:
hub:
image: selenium/hub
ports:
- '4444:4444'
chrome:
image: selenium/node-chrome
links:
- hub
どうやら同じことを試した人がいたみたいだ.
HUB_PORT_4444_TCP_ADDR
という見慣れない環境変数を定義すると動くという話らしい.実際にはこれだけでは動かず,HUB_PORT_4444_TCP_PORT
も指定する必要がある.詳細については以下のソースを参照.
私は知らなかったが,HUB_PORT_4444_TCP_ADDR
というのはLink environment variablesと呼ばれる今では非推奨となっている環境変数のようだ.links
を指定していると定義されるようだが,v2でlinks
を指定してもLink Environment Variablesが定義されないようになってしまったのかもしれない.
ちなみに,私が使っているdocker-composeのバージョンは
docker-compose version 1.9.0, build 2585387
であった.