Контейнеры не связаны с версией 2 для докеров
У меня есть файл для сборки докеров, который я обновил с версии 1 до версии 2.
Он настраивает простой концентратор Selenium с помощью firefox node.
Когда я устанавливаю его как версию 1, он запускается отлично. Когда я устанавливаю его с версией 2, контейнер ff возвращает "Not linked with a running Hub container"
и выходит.
Как я исследовал его и понял, что связь между контейнерами как-то страдает.
Есть ли решение? Я что-то пропустил?
version: '2'
services:
hub:
container_name: hub
image: selenium/hub
ports:
- "8080:4444" # HOST:CONTAINER
expose:
- "4444"
ff:
container_name: ff
image: selenium/node-firefox
links:
- hub
expose:
- "5555"
Ответы
Ответ 1
Добавьте переменную среды в раздел ff
файла Docker Compose (и вы можете удалить ссылку):
ff:
container_name: ff
image: selenium/node-firefox
environment:
- HUB_PORT_4444_TCP_ADDR=hub
expose:
- "5555"
В состав версии 2 используется другой стиль работы в сети. В руководстве по обновлению:
переменные среды, созданные links
, устарели для некоторых время. В новой сетевой сети Docker они были удалены. Вы должен либо напрямую подключиться к соответствующему имени хоста, либо установить соответствующую переменную среды самостоятельно, используя имя хоста ссылки.
Из сетевой документации:
links
не требуется включать службы для связи - по по умолчанию любая услуга может достигать любой другой услуги в этих сервисах имя.
Selenium dockerfile использует сетевую среду версии 1 по переменной ENV. Здесь, в code, если эта переменная не установлена (какой-то Docker использовал), команда entry_point.sh завершается. Предоставление переменной явно разрешает это.
Ответ 2
Ниже написан файл для работы
# To execute this docker-compose yml file use docker-compose -f <file_name> up
# Add the "-d" flag at the end for deattached execution
version: '2'
services:
firefoxnode:
image: selenium/node-firefox-debug
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "32772:5900"
chromenode:
image: selenium/node-chrome-debug
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "32773:5900"
hub:
image: selenium/hub
ports:
- "4444:4444"
команда, которую я использую:
docker-compose -f .\docker-compose.yml up -d
Источник:
https://github.com/SeleniumHQ/docker-selenium