Amazon web services 在AWS ECS上使用Docker Compose设置Selenium网格

Amazon web services 在AWS ECS上使用Docker Compose设置Selenium网格,amazon-web-services,selenium,selenium-webdriver,docker-compose,amazon-ecs,Amazon Web Services,Selenium,Selenium Webdriver,Docker Compose,Amazon Ecs,背景: 我正在尝试设置一个selenium网格以在CI上运行我的UI测试。CI是Jenkins 2.0,它在AWS ECS上运行。当我使用docker compose创建一个selenium网格并在我的MAC(OS Sierra)上调用测试时,它工作得非常好 在AWS ECS上运行时,它显示:java.awt.AWTError:无法使用“99.0”作为显示变量的值连接到X11 window server 测试代码本身在一个容器中,我使用网桥网络将容器添加到与网格相同的网络中 docker com

背景:

我正在尝试设置一个selenium网格以在CI上运行我的UI测试。CI是Jenkins 2.0,它在AWS ECS上运行。当我使用docker compose创建一个selenium网格并在我的MAC(OS Sierra)上调用测试时,它工作得非常好

在AWS ECS上运行时,它显示:java.awt.AWTError:无法使用“99.0”作为显示变量的值连接到X11 window server

测试代码本身在一个容器中,我使用网桥网络将容器添加到与网格相同的网络中

docker compose的外观如下所示:

version: '3'
services:

chromenode:
  image: selenium/node-chrome:3.4.0
  volumes:
    - /dev/shm:/dev/shm
    - /var/run/docker.sock:/var/run/docker.sock
  container_name: chromenode
  hostname: chromenode
  depends_on: 
    - seleniumhub
  ports: 
    - "5900:5900"
  environment:
    - "HUB_PORT_4444_TCP_ADDR=seleniumhub"
    - "HUB_PORT_4444_TCP_PORT=4444"
  networks:
    - grid_network

seleniumhub:
  image: selenium/hub:3.4.0
  ports: 
   - "4444:4444"
  container_name: seleniumhub
  hostname: seleniumhub
  networks:
    - grid_network
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock

 testservice:
 build:
  context: .
  dockerfile: DockerfileTest
 networks:
   - grid_network

 networks:
   grid_network:
     driver: bridge
如果需要更多信息,请告诉我

unset DISPLAY   This helped me to solve the problem
这在大多数情况下都有帮助(例如启动应用程序服务器或其他基于java的工具),并避免修改所有那么多的命令行

将其添加到专用应用程序服务器/工具用户的.bash_配置文件中也很方便。 你能试试这个吗 -no_proxy=“”