每个Jenkins构建都会在运行selenoid测试之前创建一个网络。例如,
Creating network "jenkinspr613build11_default"。网络名称基于PR和版本号。
docker-compose.yaml文件为selenoid服务提供了以下配置:
selenoid:
image: "aerokube/selenoid:latest-release"
command: -listen :4444 -conf /etc/selenoid/browsers.json -limit 6 -video-output-dir /opt/selenoid/video/ -timeout 3m -container-network jenkinswebpr613build11_default
ports:
- "4444:4444"如何为每个构建配置-container-network的值?
我可以将一个环境变量传递给yaml文件吗?
当我硬编码-container-network的值时,我可以在本地启动测试。
发布于 2019-02-06 14:06:09
随着每个Jenkins构建都更改了网络名称,我使用了不同的解决方案:
网络的值被设置为命令行变量${NETWORK_TAG},如下所示:
selenoid:
image: "aerokube/selenoid:latest-release"
command: -listen :4444 -conf /etc/selenoid/browsers.json -limit 6 -video-output-dir /opt/selenoid/video/ -timeout 3m -container-network ${NETWORK_TAG}
ports:
- "4444:4444"按照以下方式运行了对接-组合向上命令:
NETWORK_TAG=$JENKINS_NETWORK_NAME docker-compose -f docker-compose-selenoid.yml up --build$JENKINS_NETWORK_NAME的值是为每个Jenkins构建动态设置的。
发布于 2019-01-11 15:26:51
docker-compose从项目名称(可以使用-p参数显式传递给docker-compose up)和内部名称构建网络名称。
要指定内部网络,只需显式地将其写入docker-compose.yml文件并将所有服务链接到它,如下所示:
docker-compose.yml
version: '3'
services:
selenoid:
...
networks:
- my-lovely-net
networks:
my-lovely-net:另外,如果您不想每次重新创建网络,而是希望重用全局网络,那么您必须首先像docker network create foo一样创建网络,然后告诉docker-compose网络是外部的:
docker-compose.yml
version: '3'
services:
selenoid:
...
networks:
- my-lovely-net
networks:
my-lovely-net:
external: true
name: foohttps://stackoverflow.com/questions/54149257
复制相似问题