Я пытаюсь поместить тест ruby Cucumber в Docker. Я использую файл docker -compose.yml для запуска контейнера концентратора селена вместе с узлами chrome и firefox. Затем я создаю образ на основе alpine ruby с моими тестами.
Я заставил процесс работать, однако он включает в себя поиск IP-адреса контейнера концентратора каждый раз, когда он создается, а затем жесткое кодирование IP в мой файл env.rb, где я подключаюсь к сетке Selenium.
Я видел, что связанные контейнеры могут быть подключены с использованием имени, но мне не очень повезло. Есть ли способ легко передать IP-адрес контейнера концентратора в контейнер моего теста?
Вот мой yml-файл:
version: "3"
services:
hub:
image: selenium/hub
ports:
- "4444:4444"
environment:
GRID_MAX_SESSION: 16
GRID_BROWSER_TIMEOUT: 3000
GRID_TIMEOUT: 3000
chrome:
image: selenium/node-chrome
container_name: web-automation_chrome
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 4
NODE_MAX_INSTANCES: 4
volumes:
- /dev/shm:/dev/shm
ports:
- "9001:5900"
links:
- hub
firefox:
image: selenium/node-firefox
container_name: web-automation_firefox
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 2
NODE_MAX_INSTANCES: 2
volumes:
- /dev/shm:/dev/shm
ports:
- "9002:5900"
links:
- hub
myapp:
build: .
image: justinpshields/myapp
depends_on:
- hub
environment:
URL: hub
links:
- hub
networks:
default: