无需 Docker-in-Docker 的私有 Gitlab Runner 代码质量

Posted

技术标签:

【中文标题】无需 Docker-in-Docker 的私有 Gitlab Runner 代码质量【英文标题】:Private Gitlab Runner for code quality without Docker-in-Docker 【发布时间】:2021-09-03 05:42:33 【问题描述】:

我想在我们的存储库中运行代码质量小部件。实际上我想在我的 kubernetes 集群上注册一个 gitlab 运行器来执行 docker 构建。我正在尝试通过 Kubernetes Helm Charts 安装 gitlab 运行器。

这是我的舵图:`

gitlabUrl: https://blabla/


runnerRegistrationToken: blabla

runners:
  config: |
    [[runners]]
      [runners.docker]
        tls_verify = false
        image = "docker:stable"
        privileged = false
        disable_entrypoint_overwrite = false
        oom_kill_disable = false
        disable_cache = false
        volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock", "/tmp/builds:/tmp/builds"]
        shm_size = 0
            [runners.cache]
              Type = "s3"
              Path = "runner"
              Shared = true
              [runners.cache.s3]
                ServerAddress = "s3.amazonaws.com"
                BucketName = "blabla"
                BucketLocation = "us-west-1"
                Insecure = false

imagePullPolicy: IfNotPresent

不幸的是,这不起作用。我得到输出 Cannot connect to the Docker daemon at tcp://localhost:2375。 docker 守护进程是否正在运行?

谁能帮助解决这个问题的正确配置?

我的来源是:

https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#set-up-a-private-runner-for-code-quality-without-docker-in-docker

https://docs.gitlab.com/runner/install/kubernetes.html

https://gitlab.com/gitlab-org/charts/gitlab-runner/blob/master/values.yaml

提前致谢。你是我最后的希望

【问题讨论】:

【参考方案1】:

docker daemon 错误可以使用以下代码解决:

privileged = true

【讨论】:

以上是关于无需 Docker-in-Docker 的私有 Gitlab Runner 代码质量的主要内容,如果未能解决你的问题,请参考以下文章

Docker 容器网络与 Docker-in-Docker

从 GitLab CI 运行器连接到 docker-in-docker

docker-in-docker (dind) 服务在 gitlab ci 中的作用

Docker-in-Docker 与 Gitlab 共享运行器,用于构建和推送 docker 镜像到注册表

如何在Openshift平台上通过Jenkins管道运行docker-in-docker?

公共方法中的私有参数