我有一个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"
答案 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网络系统中,它们已被删除。您 应该直接连接到适当的主机名或设置 相关环境变量自己,使用链接主机名。
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
来源: