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

Kos*_*ris 12 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" 
Run Code Online (Sandbox Code Playgroud)

JCo*_*ton 30

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

ff:
  container_name: ff
  image: selenium/node-firefox
  environment:
    - HUB_PORT_4444_TCP_ADDR=hub
  expose:
    - "5555"
Run Code Online (Sandbox Code Playgroud)

撰写版本2使用不同风格的网络.从升级指南:

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

网络文档:

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

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

  • 对于每个阅读此答案但仍然发现其网格节点拒绝连接的人,请尝试将` - HUB_PORT_4444_TCP_PORT = 4444`添加到每个节点的环境部分. (9认同)