docker-compose - TestNG docker-compose 找不到本地主机 url
问题描述
我有这个 docker-compose 配置
version: '3'
services:
selenoid:
image: "aerokube/selenoid:latest"
container_name: selenoid
ports:
- "0.0.0.0:4444:4444"
networks:
- selenoid
volumes:
- ".:/etc/selenoid"
- "./target:/output"
- "/var/run/docker.sock:/var/run/docker.sock"
- "./target:/opt/selenoid/video"
environment:
- "OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/target"
command: ["-limit", "10", "-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-container-network", "selenoid"]
selenoid-ui:
image: "aerokube/selenoid-ui:latest"
container_name: selenoid-ui
links:
- selenoid
ports:
- "8083:8080"
networks:
- selenoid
command: ["--selenoid-uri", "http://selenoid:4444"]
chrome_79.0:
image: "selenoid/vnc:chrome_79.0"
container_name: chrome_79.0
links:
- selenoid
- selenoid-ui
depends_on:
- selenoid
- selenoid-ui
networks:
- selenoid
volumes:
- "/dev/shm:/dev/shm"
sent:
image: "sent:1.0"
container_name: sent
links:
- selenoid
- selenoid-ui
depends_on:
- selenoid
- selenoid-ui
networks:
- selenoid
networks:
selenoid:
external:
name: selenoid
send 是一个运行 TestNG 测试的容器,但看起来找不到 localhost URL。
如果我检查打开的端口,我会看到这个
chrome_79.0 /entrypoint.sh Up 4444/tcp
selenoid /usr/bin/selenoid -listen ... Up 0.0.0.0:4444->4444/tcp
selenoid-ui /selenoid-ui --selenoid-ur ... Up (health: starting) 0.0.0.0:8083->8080/tcp
而且我可以从外部访问localhost:4444,但是即使容器在同一个网络中也无法访问localhost。
有任何想法吗?
解决方案
好吧,我稍微改变了你的 docker 文件,它就可以工作了 =)
- 删除 chrome_79.0 和下面的所有内容
因为可以直接执行download chrome image:
docker pull selenoid/vnc:chrome_79.0
删除所有“网络”(也来自命令部分)
networks: -selenoid
而是添加(不要在命令部分添加)
network_mode: bridge
IE
image: "aerokube/selenoid:latest"
network_mode: bridge
.
.
.
image: "aerokube/selenoid-ui:latest"
network_mode: bridge
3.录制视频之前,建议你先看看它是如何在不录制的情况下工作的……
只需更改卷部分。我使用 Mac,在我的情况下它看起来像
volumes:
- "$PWD:/etc/selenoid"
- "/var/run/docker.sock:/var/run/docker.sock"
- "$PWD:/opt/selenoid/logs"
4.执行
docker-compose up
docker pull selenoid/vnc:chrome_79.0
5.查看镜像和容器列表
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ef60d57bc743 aerokube/selenoid-ui:latest "/selenoid-ui --sele…" 2 hours ago Up 2 hours (healthy) 0.0.0.0:8083->8080/tcp selenoid-ui
05bf58b73f53 aerokube/selenoid:latest "/usr/bin/selenoid -…" 2 hours ago Up 2 hours 0.0.0.0:4444->4444/tcp selenoid
REPOSITORY TAG IMAGE ID CREATED SIZE
aerokube/selenoid-ui latest 71ad7fb4efa7 5 days ago 17.5MB
aerokube/selenoid latest b8f47d114751 11 days ago 16.3MB
selenoid/vnc chrome_65.0 dff07a4cfe6d 2 years ago 959MB
6.打开
http://localhost:8083
乐趣
PS。如果不工作直接问我。
推荐阅读
- asp.net - 多个国家/地区的西班牙资源 RESX 文件
- javascript - 我收到此错误 TS2554: Expected 3-4 arguments, but got 5
- android - 使用 Jetpack Compose 从 android 图库中选择多个图像
- docker - Docker 3.5.1 安装错误:(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
- flutter - 需要一个标识符 Flutter
- elasticsearch - 无法通过 ElasticSearch Head 插件删除单个索引
- intel - VTune:使用 3 个以上端口的高价值是好是坏
- javascript - ReactJS/CSS:如何根据其他元素高度设置 div 高度?
- elasticsearch - ElasticSearch 文档中的实时计数字段
- podman - Podman(1):如何在连接到 Podman 网络的 HOST 和 POD 之间路由请求(无根)