【问题标题】:gitlab runner - network_mode = "host"gitlab runner-network_mode =“主机”
【发布时间】:2019-09-03 11:41:25
【问题描述】:

我想在 GitLab 中设置 CI/CD。 所以我在 linux 上安装了 docker 和 gitlab-runner,为 runner 创建了一个配置并启动了一切。到目前为止一切顺利。

跑步者工作,码头工人工作。

但我使用的是 windows 的 linux 子系统,所以我需要使用参数“--network host”运行 docker 容器,否则它们将无法工作。

所以现在我尝试通过“network_mode”参数配置 gitlab-runner 以使用主机网络。但它不起作用。我得到了同样的错误,就像我直接运行一个 docker 容器并且没有“--network host”一样。

错误:

警告:准备失败:来自守护进程的错误响应:oci 运行时错误:container_linux.go:265:启动容器进程导致“process_linux.go:368:容器初始化导致\”process_linux.go:351:运行预启动挂钩 0 导致\\"错误运行钩子:退出状态1,stdout:,stderr:time=\\\\"2019-04-12T18:42:33+02:00\\\\" level=fatal msg=\\\\ “未能将接口 vethfc7c8d1 添加到沙箱:无法按名称获取链接 \\\\\\\\"vethfc7c8d1\\\\\\\\": 找不到链接\\\\" \\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 运行器创建容器以使用主机网络,如 docker 参数:“--network host”

【问题讨论】:

    标签: docker gitlab-ci gitlab-ci-runner windows-subsystem-for-linux runner


    【解决方案1】:

    我无法直接解决问题,但我找到了一种更好的替代方法。

    我配置了GitLab Container Registry 存储库的上传和白名单自定义泊坞窗图像,然后启用我公司的Shared Runners。我上传的自定义图像是通过Dockerfile 使用docker for windows 创建的,避免了windows linux 子系统中错误的docker 的斗争。现在我可以完美地执行我的 CI 管道并完全控制使用的图像,而不必让我的本地机器运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-23
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多