不同主机中的Selenium节点/ chrome docker镜像和selenium/hub docker镜像
问题描述:
我有一种情况,我必须在不同的主机上使用node/chrome和selenium/hub镜像。但问题是虽然我将它们连接起来,如下图所示ansible作用:不同主机中的Selenium节点/ chrome docker镜像和selenium/hub docker镜像
- name: seleniumchromenode container
docker:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: always
restart_policy: always
links: seleniumhub:hub
它不获取链接,或者换句话说集线器没有发现的节点。请让我知道,只有当集线器和节点位于同一主机内时,链接才能工作。
答
下面是最后为我工作的。请注意,SE_OPTS对于节点能够成功链接到不同主机上的集线器是必需的。
- 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"
答
链接不跨机器工作。您可以指定IP地址/主机名并通过它连接,也可以使用Docker群集模式来部署容器 - 这可以让您执行与链接非常接近的操作(它会在群集节点之间建立网状网络,所以服务可以找到对方)。
最简单:只需传递Ansible中的主机名即可。
谢谢,我已成功地解决了这个按照您的建议在这里张贴的代码,如果它会帮助任何人: – trial999