如何更改 selenium/hub docker 容器的端口?

Pra*_*nde 6 selenium automated-tests selenium-grid docker docker-compose

我正在使用 Docker 容器执行自动化测试。我必须在同一服务器上运行多个应用程序的测试套件。但是,如果每个 selenium hub docker 容器都有相同的端口,那么我无法同时运行所有这些套件。因此我想为每个 selenium/hub docker 容器分配不同的端口。有什么方法可以更改集线器容器的端口吗?或者我是否需要编写自己的 dockerfile 而不是使用 selenium/hub docker 镜像?

我的 docker-compose 文件看起来像这样

version: "3"
services:
  selenium-hub:
    restart: always
    image: selenium/hub:latest
    ports:
      - "4444:4444"
    environment:
      - GRID_BROWSER_TIMEOUT=300
      - GRID_TIMEOUT=300
selenium-chrome:
  restart: always
  image: selenium/node-chrome:latest
  depends_on:
    - selenium-hub
  volumes:
    - /dev/shm:/dev/shm
  links:
    - selenium-hub:hub
  environment:
    - HUB_PORT_4444_TCP_ADDR=selenium-hub
    - HUB_PORT_4444_TCP_PORT=4444
    - JAVA_OPT=-Xmx512m
    - DBUS_SESSION_BUS_ADDRESS=/dev/null
    - no_proxy=localhost
    - HUB_ENV_no_proxy=localhost
    - GRID_BROWSER_TIMEOUT=300
    - GRID_TIMEOUT=300
selenium-firefox:
  restart: always
  image: selenium/node-firefox:latest
  depends_on:
    - selenium-hub
  volumes:
    - /dev/shm:/dev/shm
  links:
    - selenium-hub:hub
  environment:
    - HUB_PORT_4444_TCP_ADDR=selenium-hub
    - HUB_PORT_4444_TCP_PORT=4444
    - JAVA_OPT=-Xmx512m
    - DBUS_SESSION_BUS_ADDRESS=/dev/null
    - no_proxy=localhost
    - HUB_ENV_no_proxy=localhost
    - GRID_BROWSER_TIMEOUT=300
    - GRID_TIMEOUT=300
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 6

您可以使用环境变量更改端口SE_OPTS:只需添加

environment:
  SE_OPTS: "-port <YOUR_PREFERED_PORT>"
Run Code Online (Sandbox Code Playgroud)

您的docker-compose.ymlSelenium 将从 开始<YOUR_PREFERED_PORT>

请参阅https://github.com/SeleniumHQ/docker-selenium#se_opts-selenium-configuration-options