首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GitLab CI中连接到Docker守护进程时出错

问在GitLab CI中连接到Docker守护进程时出错
EN

Stack Overflow用户
提问于 2022-06-03 15:27:27
回答 2查看 1K关注 0票数 0

我正在尝试创建一个相当简单的GitLab CI文件来构建Docker映像。每当我运行管道时,我都会得到一个Docker守护进程连接问题。我能做些什么来正确地树立我的形象?谢谢!

GitLab CI:

代码语言:javascript
复制
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

错误:

代码语言:javascript
复制
$ 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
EN

回答 2

Stack Overflow用户

发布于 2022-06-03 18:40:52

  1. 我要检查的第一件事是,如果您已经在本地主机上运行了什么东西--我已经在本地主机端口上运行了几个小时的服务器,一直被拒绝,结果发现我忘记了终止到该端口的连接。
  2. 如果这不是问题所在,我以前就有过这个问题,必须运行这个命令才能让它正常工作:
代码语言:javascript
复制
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

我花了很长时间想办法解决这个问题,直到我发现要增加的时候才能得到任何东西。

代码语言:javascript
复制
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

不过,我并没有用魔法弄明白--这个问题的道具是:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1986

希望这能奏效。

票数 0
EN

Stack Overflow用户

发布于 2022-06-03 19:38:18

为了让与GitLab CI一起工作,您首先需要决定是否使用带有或不带TLS的。然后,更改/etc/gitlab-runner/config.toml设置,并在.gitlab-ci.yml文件中分配DOCKER_TLS_CERTDIR。请参阅码头-内坞区的GitLab文档。

船坞内船坞与TLS

代码语言:javascript
复制
# /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]
代码语言:javascript
复制
# .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.yml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72491857

复制
相关文章

相似问题

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