容器未与docker-compose版本2链接

时间:2016-03-18 14:38:49

标签: docker docker-compose

我有一个docker-compose文件,我从版本1升级到版本2.

它设置了一个带有firefox节点的简单Selenium集线器。

当我将其设置为版本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" 

2 个答案:

答案 0 :(得分:29)

将环境变量添加到Docker Compose文件的ff部分(您可以删除该链接):

ff:
  container_name: ff
  image: selenium/node-firefox
  environment:
    - HUB_PORT_4444_TCP_ADDR=hub
  expose:
    - "5555"

撰写版本2使用不同风格的网络。来自upgrading guide

  

links创建的环境变量已被弃用   时间。在新的Docker网络系统中,它们已被删除。您   应该直接连接到适当的主机名或设置   相关环境变量自己,使用链接主机名。

来自networking documentation

  

links不需要启用服务来进行通信   默认情况下,任何服务都可以访问该服务的任何其他服务   名。

Selenium dockerfile使用ENV变量的版本1样式网络。在code中,如果该变量未设置(Docker曾经做过),则退出entry_point.sh命令。提供变量明确地解决了这个问题。

答案 1 :(得分:0)

下面撰写为我工作的文件

# 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