我正在尝试创建一个相当简单的GitLab CI文件来构建Docker映像。每当我运行管道时,我都会得到一个Docker守护进程连接问题。我能做些什么来正确地树立我的形象?谢谢!
GitLab CI:
image: docker:20.10.16
services:
- docker:20.10.16-dind
variables:
DOCKER_HOST: tcp://docker:2375
iac-build:
stage: build
extends: .iac
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
when: always
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
script:
- docker build -t testfirstimage .
allow_failure: false错误:
$ docker build -t testfirstimage .
failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial tcp 127.0.0.1:2375: connect: connection refused
Cleaning up project directory and file based variables
ERROR: Job failed: command terminated with exit code 1发布于 2022-06-03 18:40:52
concurrent = 1
check_interval = 0
[[runners]]
name = "#####"
url = "#####"
token = "#####"
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:latest"
privileged = false
disable_cache = false
cache_dir = "cache"
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
[runners.cache]
Insecure = false我花了很长时间想办法解决这个问题,直到我发现要增加的时候才能得到任何东西。
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]不过,我并没有用魔法弄明白--这个问题的道具是:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1986
希望这能奏效。
发布于 2022-06-03 19:38:18
为了让与GitLab CI一起工作,您首先需要决定是否使用带有或不带TLS的。然后,更改/etc/gitlab-runner/config.toml设置,并在.gitlab-ci.yml文件中分配DOCKER_TLS_CERTDIR。请参阅码头-内坞区的GitLab文档。
船坞内船坞与TLS
# /etc/gitlab-runner/config.toml
[[runners]]
url = "https://gitlab.com/"
token = TOKEN
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:20.10.16"
privileged = true
disable_cache = false
volumes = ["/certs/client", "/cache"]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]# .gitlab-ci.yml
image: docker:20.10.16
variables:
DOCKER_TLS_CERTDIR: "/certs"
services:
- docker:20.10.16-dind
before_script:
- docker info
# rest of .gitlab-ci.ymlhttps://stackoverflow.com/questions/72491857
复制相似问题