我需要在我的一个步骤中将--network
选项传递给docker run命令。
我尝试使用network_mode
选项配置gitlab-ci runner,但没有工作
有没有办法在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
答案 0 :(得分:0)
network_mode
适用于该主机上的所有已知网络,list them可以使用docker network ls
。
dedicated
必须在该列表中才能生效。
我已经成功地为host
网络做了这件事,并且可以确认这是有效的。
答案 1 :(得分:0)
最后通过this link
找到了解决方案我安装gitlab-dind并通过定义env变量-e DOCKER_HOST=tcp://gitlab-dind:2375
并使用network_mode = "host"
我的config.toml
看起来像这样:
[[runners]]
name = "Runner"
url = "https://gitlab.company.com"
token = "ff10e2ae64be1a2f246f5f89e0bc63"
executor = "docker"
[runners.docker]
host = "tcp://gitlab-dind:2375"
tls_verify = false
image = "docker:latest"
privileged = true
disable_cache = false
volumes = ["/cache"]
network_mode = "host"
shm_size = 0
[runners.cache]