Контейнеры не связаны с версией 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