Selenium Grid с контейнерами Docker на разных хостах

Мне нравится настраивать Selenium Grid на AWS с официальными образами Docker, которые можно найти здесь https://github.com/SeleniumHQ/docker-selenium

Концентратор и узлы должны находиться на разных машинах / хостах докеров.

Я использую контейнер посла, как описано здесь: https://docs.docker.com/articles/ambassador_pattern_linking/

(концентратор) -> (селен-посол) --network -> (селен-посол) -> (узел)

Я создал два экземпляра EC2 и выполнил следующие команды:

На хабе машины:

$ docker run -d --name selenium-hub selenium/hub:2.47.1
$ docker run -d --link selenium-hub:selenium-hub --name selenium_ambassador -p 4444:4444 svendowideit/ambassador

На узле машины:

$ docker run -d --name selenium_ambassador --expose 4444 -e SELENIUM_PORT_4444_TCP=tcp://<public-AWS-EC2-IP>:4444 svendowideit/ambassador
$ docker run -d --link selenium_ambassador:selenium-hub selenium/node-chrome:2.47.1

После выполнения последней команды я получаю следующее сообщение об ошибке на компьютере узла:

Not linked with a running Hub container

Группы безопасности на каждом компьютере EC2 разрешают порты 22 и 4444.

Надеюсь, кто-нибудь может мне помочь или дать подсказку? Заранее спасибо.

1 ответ

После еще одного исследования я обнаружил, что дополнительный посол-контейнер не нужен. Узел и концентратор могут связываться непосредственно после установки соответствующих параметров / переменных среды REMOTE_HOST, HUB_PORT_4444_TCP_ADDR, HUB_PORT_4444_TCP_PORT. Существует также соответствующая решенная проблема https://github.com/SeleniumHQ/docker-selenium/issues/51

Вкратце, просто выполните следующие команды:

хаб

$ docker run -d -p 4444:4444 --name selenium-hub selenium/hub:2.47.1

Узел

$ docker run -d -p 5555:5555 -e REMOTE_HOST="http://<PASTE-NODE-IP>:5555" -e HUB_PORT_4444_TCP_ADDR="<PASTE-HUB-IP>" -e HUB_PORT_4444_TCP_PORT="4444" --name chrome-node selenium/node-chrome:2.47.1
Другие вопросы по тегам