gitlab runner - network_mode = "host"
gitlab runner - network_mode = "host"
我想在 GitLab 中设置 CI/CD。
所以我在 linux 上安装了 docker 和 gitlab-运行ner,为 运行ner 创建了一个配置并开始了一切。到目前为止一切顺利。
运行ner 工作,docker 工作。
但我正在使用 windows 的 linux 子系统,所以我需要 运行 带有参数“--network host”的 docker 容器,否则它们不会会工作。
所以现在我尝试配置 gitlab-运行ner 通过 "network_mode" 参数使用主机网络。但它不起作用。我得到了同样的错误,就好像我直接 运行 一个 docker 容器并且没有“--network host”。
错误:
WARNING: Preparation failed: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"process_linux.go:351: running prestart hook 0 caused \"error running hook: exit status 1, stdout: , stderr: time=\\"2019-04-12T18:42:33+02:00\\" level=fatal msg=\\"failed to add interface vethfc7c8d1 to sandbox: failed to get link by name \\\\"vethfc7c8d1\\\\": Link not found\\" \n\"\"" (executor_docker.go:423:16s) job=123project=123 runner=123
这是我的配置:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "MyHostName"
url = "https://my.gitlab.url/"
token = "SoMeFaNcYcOdE-e"
executor = "docker"
[runners.docker]
tls_verify = false
image = "beevelop/ionic:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
network_mode = "host"
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
我的问题是如何强制 gitlab 运行ner 创建容器以使用主机网络,就像 docker 参数:“--network host”
我无法直接解决问题,但我找到了一个更好的替代方法。
我配置了 GitLab Container Registry
存储库的上传和白名单自定义 docker 图像,然后启用 Shared Runners of my company. The custom image i uploaded was created via a Dockerfile using docker for windows,避免 windows 的 linux 子系统中的错误 docker ].现在我可以完美地执行我的 CI 管道并完全控制使用的图像,而不必保留我的本地机器 运行.
我想在 GitLab 中设置 CI/CD。 所以我在 linux 上安装了 docker 和 gitlab-运行ner,为 运行ner 创建了一个配置并开始了一切。到目前为止一切顺利。
运行ner 工作,docker 工作。
但我正在使用 windows 的 linux 子系统,所以我需要 运行 带有参数“--network host”的 docker 容器,否则它们不会会工作。
所以现在我尝试配置 gitlab-运行ner 通过 "network_mode" 参数使用主机网络。但它不起作用。我得到了同样的错误,就好像我直接 运行 一个 docker 容器并且没有“--network host”。
错误:
WARNING: Preparation failed: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"process_linux.go:351: running prestart hook 0 caused \"error running hook: exit status 1, stdout: , stderr: time=\\"2019-04-12T18:42:33+02:00\\" level=fatal msg=\\"failed to add interface vethfc7c8d1 to sandbox: failed to get link by name \\\\"vethfc7c8d1\\\\": Link not found\\" \n\"\"" (executor_docker.go:423:16s) job=123project=123 runner=123
这是我的配置:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "MyHostName"
url = "https://my.gitlab.url/"
token = "SoMeFaNcYcOdE-e"
executor = "docker"
[runners.docker]
tls_verify = false
image = "beevelop/ionic:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
network_mode = "host"
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
我的问题是如何强制 gitlab 运行ner 创建容器以使用主机网络,就像 docker 参数:“--network host”
我无法直接解决问题,但我找到了一个更好的替代方法。
我配置了 GitLab Container Registry 存储库的上传和白名单自定义 docker 图像,然后启用 Shared Runners of my company. The custom image i uploaded was created via a Dockerfile using docker for windows,避免 windows 的 linux 子系统中的错误 docker ].现在我可以完美地执行我的 CI 管道并完全控制使用的图像,而不必保留我的本地机器 运行.