不同主机上的Selenium节点/chrome docker映像和Selenium/hub docker映像
我的情况是,我必须在不同的主机上使用node/chrome和selenium/hub映像。然而,问题是,尽管我将它们链接到ansible角色中,如下所示:不同主机上的Selenium节点/chrome docker映像和Selenium/hub docker映像,docker,selenium-grid,Docker,Selenium Grid,我的情况是,我必须在不同的主机上使用node/chrome和selenium/hub映像。然而,问题是,尽管我将它们链接到ansible角色中,如下所示: - name: seleniumchromenode container docker: name: seleniumhubchromenode image: "{{ seleniumchromenode_image }}" state: "{{ 'started' }}" pull: always
- name: seleniumchromenode container
docker:
name: seleniumhubchromenode
image: "{{ seleniumchromenode_image }}"
state: "{{ 'started' }}"
pull: always
restart_policy: always
links: seleniumhub:hub
它没有链接,或者换句话说,集线器没有发现节点。请告诉我链接是否仅在集线器和节点位于同一主机内时才起作用。链接不能跨机器工作。您可以指定IP地址/主机名,并让它通过该地址/主机名进行连接,或者您可以使用Docker Swarm模式部署您的容器-这让您可以进行非常接近链接的操作(它在Swarm节点之间建立一个网状网络,以便服务可以找到彼此)
最简单的方法是:只需在Ansible中传递主机名。下面是最终对我有效的方法。请注意,要使节点能够成功链接到不同主机上的集线器,SE_选项是必需的
- 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"
谢谢,我已经按照您的建议解决了这个问题。如果代码对任何人都有帮助,请在此处发布代码: