LoginSignup
7
3

More than 5 years have passed since last update.

Selenium Grid Hubをdocker-compose.yml(version 2)で動かす方法

Last updated at Posted at 2016-12-12

結論

HUB_PORT_4444_TCP_ADDR及びHUB_PORT_4444_TCP_PORTenvironmentに指定する.

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)形式を使用する例が見つかる.

試しにv2形式に書き直してみたが,どうもうまく動かない.

docker-compose.yml
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

であった.

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3