我试图在我的Gitlab构建脚本中使用DinD (Docker in Docker),无论我更改什么,我都会得到相同的错误。我做错了什么?
误差
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 hostgitlab-ci.yml
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
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
{
"storage-driver": "overlay2"
}--编辑--
对于任何回来看这个的人来说,这是我如何让它发挥作用的。我在我的本地机器上运行gitlab跑步机,在提交回购之前测试一些东西。
运行命令时:
gitlab-runner exec docker django_build不管出于什么原因,它没有使用我的配置文件。我找到了这个链接:https://gitlab.com/gitlab-org/gitlab-runner/issues/1791,它声明您必须在命令中退出https://gitlab.com/gitlab-org/gitlab-runner/issues/1791。
跑完后:
gitlab-runner exec docker --docker-privileged django_build一切正常。
发布于 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执行器,可以用
[[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。
https://stackoverflow.com/questions/51957808
复制相似问题