当前位置: 首页 > 知识库问答 >
问题:

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

阙佐
2023-03-14

我正在使用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

共有3个答案

郭弘方
2023-03-14

只需查找4444并将其替换为您想要使用的任何端口。例如,使用4440而不是4444。

version: "3"
services:
  selenium-hub:
    restart: always
    image: selenium/hub:latest
    ports:
      - "4440:4440"
    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_4440_TCP_ADDR=selenium-hub
    - HUB_PORT_4440_TCP_PORT=4440
    - 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_4440_TCP_ADDR=selenium-hub
    - HUB_PORT_4440_TCP_PORT=4440
    - JAVA_OPT=-Xmx512m
    - DBUS_SESSION_BUS_ADDRESS=/dev/null
    - no_proxy=localhost
    - HUB_ENV_no_proxy=localhost
    - GRID_BROWSER_TIMEOUT=300
    - GRID_TIMEOUT=300
燕刚毅
2023-03-14

根据Dockerfilehttps://github.com/SeleniumHQ/docker-selenium/blob/master/Hub/Dockerfile您可以设置GRID_HUB_PORT

    environment:
      GRID_HUB_PORT: "4545"
杜茂
2023-03-14

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

environment:
  SE_OPTS: "-port <YOUR_PREFERED_PORT>"

给你的docker撰写。yml和Selenium将从

看https://github.com/SeleniumHQ/docker-selenium#se_opts-selenium-configuration-options

 类似资料:
  • 问题内容: 当我运行docker时,下载的docker映像(似乎是)存储在某个地方。 由于该目录上的磁盘空间有限,因此我要同时将docker设置到多台机器上;有没有办法将此默认位置更改为ie ? 问题答案: 您可以使用option和您选择的目录来启动Docker守护程序。这将为Docker设置适当的运行时。 对于1.8版,应该是这样的: 对于早期版本,它将是: 从手册页:

  • 问题内容: 我正在使用JavaMail编写一个小型Java应用程序,该应用程序向用户发送自动电子邮件。他们可以在两个端口之间选择(现在):25和587。可以通过GUI上的单选按钮选择端口。 我添加了一个测试按钮,以允许用户测试电子邮件设置(包括端口)。但是,由于某种原因,一旦用户尝试发送测试电子邮件,就无法更改端口。Javamail将始终使用原始测试电子邮件的端口。 示例:用户尝试在端口25上发送

  • 请问如何更改pentaho 5.1的端口。我使用的是windows 10。现在值为8080但我需要更改,我在网上搜索了信息,他们让我修改一些xml文件,但问题是,他们提到的文件在我的pentaho中不存在。 非常感谢!

  • 我正在尝试运行以下命令将hpi文件打包到目标文件夹中 并观察到下面的错误消息,该消息表示该端口已被使用。我只是试图手动终止端口,但我没有这样做的特权。是否可以通过作为参数-Dhpi传递来自定义端口号。port=xxx类似于这样的吗? 例外: JAVA网BindException:地址已在使用中:在sun处绑定。尼奥。中国网。在sun的bind0(本机方法)。尼奥。中国网。在sun上绑定(Net.j

  • 问题内容: 我正在尝试使用Docker compose在远程服务器上部署第二个数据库容器。该postgresql服务器在端口5433上运行,而不是第一个postgresql容器使用的5432。 设置应用程序时,出现以下错误输出: 我的泊坞窗撰写文件是: 我觉得问题一定是服务器实例上的postgresql.conf文件将端口设置为5432导致我的应用尝试与其连接时导致错误。有没有一种简单的方法可以使

  • 在我的项目中,我有固定的页眉和页脚,以及可变的内容。所以我已经将ContentControl放在了我的窗口中。 看起来是这样的... 我创建了两个名为page1、Page2用户控件。第1页有一个按钮,当我单击该按钮时,ContentControl有显示Page2。 所以我用button1_Click编写了下面的代码 但是在点击按钮的时候ContentControl没有改变我能做什么呢? 我的pag