gpt4 book ai didi

docker - Gitlab-CI DinD 不会启动

转载 作者:行者123 更新时间:2023-12-04 16:04:34 26 4
gpt4 key购买 nike

我正在尝试将 DinD(Docker 中的 Docker)与我的 Gitlab-CI 构建脚本一起使用,并且无论我更改什么,我都会收到相同的错误。我究竟做错了什么?

错误

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
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"
}

--- 编辑 ---

对于任何回来看看这个的人,我是如何让它工作的。在提交到 repo 之前,我在本地机器上运行 gitlab-runner 以测试内容。

运行命令时:
gitlab-runner exec docker django_build

无论出于何种原因,它没有使用我的配置文件。我找到了这个链接: https://gitlab.com/gitlab-org/gitlab-runner/issues/1791说明你必须出去 --docker-privileged 在命令中。

运行后:
gitlab-runner exec docker --docker-privileged django_build

一切正常。

最佳答案

仔细检查 GitLab runner parameters when running docker .

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

sudo usermod -aG docker gitlab-runner

从那里,sudo -u gitlab-runner -H docker info应该管用。

如果没有,请检查 /etc/hosts is mounted as a volume, as in this bug .

官方gitlab-runner documentation声明,对于 DiD 执行器,创建一个 config.toml

[[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需要。

关于docker - Gitlab-CI DinD 不会启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51957808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com