我正在运行 Selenoid 应用程序测试自动化脚本,并希望针对本地应用程序运行此脚本。但是,我找不到如何将我的本地应用程序(在 port 上运行8787
)暴露给 Selenoid。我发现以下线程讨论了一个类似的问题,但它并没有解决我的问题。链接的线程描述使用主机的 IP 地址。但是,我想让我的测试系统独立。每个系统的主机ip地址都不一样,很难被系统单独检索到。
我已经尝试将公开字段添加到我的 docker compose 文件中:
version: '3'
services:
selenoid:
network_mode: bridge
image: aerokube/selenoid:latest-release
volumes:
- "${PWD}/run:/etc/selenoid"
- "/var/run/docker.sock:/var/run/docker.sock"
- "${PWD}/run/video:/opt/selenoid/video"
- "${PWD}/run/logs:/opt/selenoid/logs"
environment:
- OVERRIDE_VIDEO_OUTPUT_DIR=${PWD}/run/video
- TZ=Europe/Amsterdam
command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
ports:
- "4444:4444"
expose:
- "8787"
但是,这不起作用,因为 Selenoid 创建的 docker 容器没有通过相同的选项。
有没有办法以8787
独立于系统/操作系统的方式将我的主机端口公开给我的 Selenoid 容器(通过docker-compose.yml
文件中的配置、传递给远程驱动程序的能力或任何其他方式?)?