首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为每个jenkins构建在selenoid中配置‘-容器-网络’的值?

如何为每个jenkins构建在selenoid中配置‘-容器-网络’的值?
EN

Stack Overflow用户
提问于 2019-01-11 15:15:02
回答 2查看 960关注 0票数 2

每个Jenkins构建都会在运行selenoid测试之前创建一个网络。例如,

Creating network "jenkinspr613build11_default"。网络名称基于PR和版本号。

docker-compose.yaml文件为selenoid服务提供了以下配置:

代码语言:javascript
复制
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的值时,我可以在本地启动测试。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-06 14:06:09

随着每个Jenkins构建都更改了网络名称,我使用了不同的解决方案:

网络的值被设置为命令行变量${NETWORK_TAG},如下所示:

代码语言:javascript
复制
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"

按照以下方式运行了对接-组合向上命令:

代码语言:javascript
复制
NETWORK_TAG=$JENKINS_NETWORK_NAME docker-compose -f docker-compose-selenoid.yml up --build

$JENKINS_NETWORK_NAME的值是为每个Jenkins构建动态设置的。

票数 0
EN

Stack Overflow用户

发布于 2019-01-11 15:26:51

docker-compose从项目名称(可以使用-p参数显式传递给docker-compose up)和内部名称构建网络名称。

要指定内部网络,只需显式地将其写入docker-compose.yml文件并将所有服务链接到它,如下所示:

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  selenoid:
    ...
  networks:
    - my-lovely-net

networks:
  my-lovely-net:

另外,如果您不想每次重新创建网络,而是希望重用全局网络,那么您必须首先像docker network create foo一样创建网络,然后告诉docker-compose网络是外部的:

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  selenoid:
    ...
  networks:
    - my-lovely-net

networks:
  my-lovely-net:
    external: true
    name: foo
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54149257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档