首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab-CI DinD不会启动

Gitlab-CI DinD不会启动
EN

Stack Overflow用户
提问于 2018-08-21 23:02:39
回答 1查看 6.9K关注 0票数 8

我试图在我的Gitlab构建脚本中使用DinD (Docker in Docker),无论我更改什么,我都会得到相同的错误。我做错了什么?

误差

代码语言:javascript
复制
Service container logs: 
2018-08-21T22:54:00.129660274Z mount: permission denied (are you root?)
2018-08-21T22:54:00.129701426Z Could not mount /sys/kernel/security.
2018-08-21T22:54:00.129706380Z AppArmor detection and --privileged mode might break.
2018-08-21T22:54:00.130334774Z mount: permission denied (are you root?)
...
$ docker info
error during connect: Get http://docker:2375/v1.38/info: dial tcp: lookup docker on 8.8.8.8:53: no such host

gitlab-ci.yml

代码语言:javascript
复制
django_build:
  stage: build
  variables:
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker info
  script:
    - echo "Building something." 

gitlab-runner config.toml

代码语言:javascript
复制
concurrent = 1 
check_interval = 0 

[[runners]]
  name = "###"
  url = "###"
  token = "###"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "alpine:3.4"
    privileged = true
    disable_cache = false
    volumes = ["/cache"]
  [runners.cache]
    Insecure = false

/etc/docker/daemon.json

代码语言:javascript
复制
{
    "storage-driver": "overlay2"
}

--编辑--

对于任何回来看这个的人来说,这是我如何让它发挥作用的。我在我的本地机器上运行gitlab跑步机,在提交回购之前测试一些东西。

运行命令时:

代码语言:javascript
复制
gitlab-runner exec docker django_build

不管出于什么原因,它没有使用我的配置文件。我找到了这个链接:https://gitlab.com/gitlab-org/gitlab-runner/issues/1791,它声明您必须在命令中退出https://gitlab.com/gitlab-org/gitlab-runner/issues/1791

跑完后:

代码语言:javascript
复制
gitlab-runner exec docker --docker-privileged django_build

一切正常。

EN

回答 1

Stack Overflow用户

发布于 2018-08-22 04:58:57

再检查一遍运行码头时GitLab转轮参数.

特别是,请确保将gitlab-runner用户添加到docker组中:

sudo usermod -aG对接器gitlab-runner

从那里开始,sudo -u gitlab-runner -H docker info应该可以工作。

如果没有,请检查作为卷挂载,如在此bug中。是否。

官方的gitlab-runner文档声明,对于DiD执行器,可以用

代码语言:javascript
复制
[[runners]]
  url = "https://gitlab.com/"
  token = TOKEN
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = true

但是OP发现没有使用privileged = true

除非config.tml是由sudo gitlab-runner register -n... --docker-privileged命令创建的。

如果没有,则需要gitlab-runner exec docker --docker-privileged

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51957808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档