docker - 如何使用docker executor将参数传递给gitlab-ci中的docker命令

标签 docker gitlab gitlab-ci gitlab-ci-runner

我需要在步骤之一中将--network选项传递给docker run命令。
我尝试使用network_mode选项配置gitlab-ci运行程序,但是没有用

有什么办法可以在gitlab-ci中向docker命令添加选项吗?

这是我的config.toml:

[[runners]]
  name = "Docker Runner"
  url = "https://gitlab.company.com"
  token = "9621bf2aba8b979b"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "alpine:latest"
    privileged = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    network_mode = "dedicated"
    shm_size = 0

更新

专用在我的网络列表中,尝试使用主机,结果相同
NETWORK ID          NAME                DRIVER              SCOPE
0ec4c3c2d4be        bridge              bridge              local
977b613d726e        dedicated           bridge              local
45a0fadc2ce7        host                host                local
9f7251c769ca        none                null                local

我在公司的IT服务中添加了一个插件来检查容器启动时的参数,我得到了AuthZPlugin.AuthZReq: Use of subnet '1.1.1.1/24' is forbidden
那就是为什么我需要显式添加--network dedicated

最佳答案

network_mode适用于主机上的任何已知网络,您可以使用docker network ls进行list them
dedicated必须在该列表中才能起作用。

我已经为host网络成功完成了此工作,并且可以确认这项工作。

关于docker - 如何使用docker executor将参数传递给gitlab-ci中的docker命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470453/

相关文章:

docker - 如何在Eureka中使用IP地址代替主机名?

docker - 是否可以重用Docker多阶段构建中另一个阶段的镜像?

java - 微服务在 Eureka 上注册 Docker 内部 IP,而不是公共(public) IP

gitlab - 在GitLab CI中定义并行作业序列

yaml - 使用 GitLab CI 如何禁用一项作业的存储库克隆?

docker - 需要 docker 网络做什么?

git - 在 PowerShell 中将 curl REST 调用转换为 Invoke-RestMethod

git - 向 Gitlab 添加了 SSH key ,但它仍然要求我提供凭据

gitlab - 如何升级到新安装的 gitlab runner 版本?

docker - 为自己的 docker 注册表提供 dockerd 的 SSL 证书