Selenium node/chrome docker 图像和 selenium/hub docker 图像在不同的主机
Selenium node/chrome docker image and selenium/hub docker image in different host machines
我有一种情况,我必须在不同的主机上使用 node/chrome 和 selenium/hub 图像。然而问题是,尽管我将它们链接到以下 ansible 角色中:
- name: seleniumchromenode container
docker:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: always
restart_policy: always
links: seleniumhub:hub
它没有链接,或者换句话说,集线器没有发现节点。请让我知道链接是否仅在集线器和节点位于同一主机内时才有效。
链接不能跨机器使用。您可以指定 IP address/hostname 并让它通过该 IP 连接,或者您可以使用 Docker Swarm Mode 来部署您的容器 - 这让您可以做一些非常接近链接的事情(它建立了一个网状网络跨集群节点,因此服务可以找到彼此)。
最简单:只需在 Ansible 中传递主机名即可。
以下是最终对我有用的方法。请注意,SE_OPTS 是节点能够 link 成功连接到位于不同主机上的集线器所必需的。
- name: seleniumchromenode container
docker_container:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: true
restart_policy: always
exposed_ports:
- "{{seleniumnode_port}}"
published_ports:
- "{{seleniumnode_port}}:{{seleniumnode_port}}"
env:
HUB_PORT_4444_TCP_ADDR: "{{seleniumhub_host}}"
HUB_PORT_4444_TCP_PORT: "{{seleniumhub_port}}"
SE_OPTS: "-host {{seleniumnode_host}} -port {{seleniumnode_port}}"
NODE_MAX_INSTANCES: "5"
NODE_MAX_SESSION: "5"
我有一种情况,我必须在不同的主机上使用 node/chrome 和 selenium/hub 图像。然而问题是,尽管我将它们链接到以下 ansible 角色中:
- name: seleniumchromenode container
docker:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: always
restart_policy: always
links: seleniumhub:hub
它没有链接,或者换句话说,集线器没有发现节点。请让我知道链接是否仅在集线器和节点位于同一主机内时才有效。
链接不能跨机器使用。您可以指定 IP address/hostname 并让它通过该 IP 连接,或者您可以使用 Docker Swarm Mode 来部署您的容器 - 这让您可以做一些非常接近链接的事情(它建立了一个网状网络跨集群节点,因此服务可以找到彼此)。
最简单:只需在 Ansible 中传递主机名即可。
以下是最终对我有用的方法。请注意,SE_OPTS 是节点能够 link 成功连接到位于不同主机上的集线器所必需的。
- name: seleniumchromenode container
docker_container:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: true
restart_policy: always
exposed_ports:
- "{{seleniumnode_port}}"
published_ports:
- "{{seleniumnode_port}}:{{seleniumnode_port}}"
env:
HUB_PORT_4444_TCP_ADDR: "{{seleniumhub_host}}"
HUB_PORT_4444_TCP_PORT: "{{seleniumhub_port}}"
SE_OPTS: "-host {{seleniumnode_host}} -port {{seleniumnode_port}}"
NODE_MAX_INSTANCES: "5"
NODE_MAX_SESSION: "5"