簡體   English   中英

適用於AWS和Selenium Grid的Docker - 連接被拒絕/沒有到主機的路由(主機無法訪問)

[英]Docker for AWS and Selenium Grid - Connection refused / No route to host (Host unreachable)

我想要實現的是使用Selenium Grid的可擴展和按需測試基礎架構。

我可以把所有東西都搞定,但我最終得到的是:

在此輸入圖像描述

以下是所有部分:

  1. 適用於AWS的Docker (CloudFormation堆棧)
  2. 泊塢窗硒
  3. Docker撰寫文件(如下)

使用的“隱含”軟件是:

Docker群

堆棧

這是我能做到的:

  1. 按照以下指南創建,登錄並ping通堆棧中的所有主機和節點: 部署Docker for AWS

  2. 通過運行以下命令在本查詢結束時使用撰寫文件進行部署:

     docker stack deploy -c docker-compose.yml grid 
  3. 使用AWS自動提供的面向公眾的DNS名稱查看Selenium Grid控制台(成功創建堆棧后)。 以下是有關該主題的有用條目: Docker Swarm模式

這是我正在使用的撰寫文件的內容:

version: '3'

services:
  hub:
    image: selenium/hub:3.4.0-chromium
    ports:
      - 4444:4444
    networks:
      - selenium
    environment:
      - JAVA_OPTS=-Xmx1024m
    deploy:
      update_config:
        parallelism: 1
        delay: 10s
      placement:
        constraints: [node.role == manager]

  chrome:
    image: selenium/node-chrome:3.4.0-chromium  
    networks:
      - selenium
    depends_on:
      - hub
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    deploy:
    placement:
      constraints: [node.role == worker]

  firefox:
    image: selenium/node-firefox:3.4.0-chromium
    networks:
      - selenium
    depends_on:
      - hub
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    deploy:
    placement:
      constraints: [node.role == worker]

networks:
  selenium:

任何關於這個問題的指導將不勝感激。 謝謝。

我也試過在群體中打開端口:

swarm-exec docker service update --publish-add 5555:5555 gird

一個快速的谷歌提出了https://github.com/SeleniumHQ/docker-selenium/issues/255 您需要將以下內容添加到Chrome和Firefox節點:

entrypoint: bash -c 'SE_OPTS="-host $$HOSTNAME" /opt/bin/entry_point.sh'

這是因為容器在Swarm模式下有兩個IP地址,並且節點正在拾取錯誤的地址並將其通告給集線器。 此更改將使節點通告其主機名,以便集線器可以通過DNS查找節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM