Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同主机上的Selenium节点/chrome docker映像和Selenium/hub docker映像_Docker_Selenium Grid - Fatal编程技术网

不同主机上的Selenium节点/chrome docker映像和Selenium/hub docker映像

不同主机上的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

我的情况是,我必须在不同的主机上使用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地址/主机名,并让它通过该地址/主机名进行连接,或者您可以使用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"

谢谢,我已经按照您的建议解决了这个问题。如果代码对任何人都有帮助,请在此处发布代码: