如何通过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链接