使用 docker 执行器在 docker 中运行 Gitlab

使用 docker 执行器在 docker 中运行 Gitlab

我想在 Docker 容器中运行 Gitlab CI Runner,同时使用 Docker 执行器在它们自己的 Docker 容器中运行我的构建,所有这些都在 CoreOS 之上完成。

这有可能吗?到目前为止,我发现的所有文档都假设 Gitlab Runner 在主机操作系统上运行,这对我来说不是一个可行的选择。

另一种方法是使用专门的 gitlab-runner 容器,并在每个容器中安装构建依赖项。

答案1

--privileged参数

https://docs.docker.com/engine/reference/run/#/runtime-privilege-and-linux-capabilities

这应该能够让docker在docker中运行。所以理论上是可行的,但你可能会遇到其他问题。

答案2

您需要挂载 docker.sock ,设置 --privileged

docker run -d  -v /var/run/docker.sock:/var/run/docker.sock --name gitlab-runner --privileged --restart always -v d:/docker/data/gitlab-runner:/etc/gitlab-runner gitlab/gitlab-runner:latest

并设置配置特权。

[[runners]]

  name = "docker2"
  url = "https://gitlab.com/"
  token = "xxxxx"
  executor = "docker"
  [runners.docker]
    image = "alpine:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    shm_size = 0

相关内容