如何通过docker-compose而不是使用docker启动selenium hub和一个链接节点?

我可以通过以下方式启动一个selenium中心图像:

docker run --rm=true -P -p 4444:4444 --name selenium-hub selenium/hub 

并通过以下方式添加一个Firefox工作

 docker run --rm=true --link selenium-hub:hub selenium/node-firefox 

继续http:// localhost:4444 / grid / console然后将显示网格就好了。

我不想每次都使用docker,但通过docker-compose进行相同的设置。

因此,我想我可以在我docker-compose.yml执行此docker-compose.yml

 selenium_hub: image: selenium/hub ports: ["4444:4444"] links: - selenium_firefox_worker selenium_firefox_worker: image: selenium/node-firefox 

然而,在运行docker-compose up我得到以下消息:

 selenium_firefox_node_1 | Not linked with a running Hub container selenium_firefox_node_1 exited with code 1 

因此网格不显示任何节点。

我以为我可能会以错误的顺序进行链接,甚至:

 selenium_hub: image: selenium/hub ports: ["4444:4444"] selenium_firefox_node: image: selenium/node-firefox links: - selenium_hub 

产生相同的错误。

我究竟做错了什么?

 selenium_hub: image: selenium/hub ports: ["4444:4444"] selenium_firefox_node: image: selenium/node-firefox links: - "selenium_hub:hub" 

虽然Kopernikus的答案确实有效,但我只想详细说明失败的原因。

节点容器期望连接到可以简单parsing的集线器:

 hub 

而不是在他们的例子中,它可以被parsing为:

 selenium_hub 

在这个教程中徘徊 ,提供了这个语法。 即使它与我的方法类似,它的工作。

 hub: image: selenium/hub ports: - "4444:4444" firefox: image: selenium/node-firefox links: - hub chrome: image: selenium/node-chrome links: - hub 

这似乎是关于命名的东西,但我不确定。

请注意,如果使用docker-compose版本2格式,则必须指定一对envvariables,否则节点将不会连接到hub:

 version: '2' services: hub: image: selenium/hub ports: - "4444:4444" firefox: image: selenium/node-firefox environment: HUB_PORT_4444_TCP_ADDR: hub HUB_PORT_4444_TCP_PORT: 4444 links: - hub 

积分: 容器没有与docker-compose版本2链接