Docker GitLab CI runner可以';连接不到tcp://localhost:2375 在库伯内特斯

Docker GitLab CI runner可以';连接不到tcp://localhost:2375 在库伯内特斯,docker,kubernetes,gitlab,Docker,Kubernetes,Gitlab,我按照此文档在GKE上安装Gitlab: 我的安装参数是: helm upgrade --install gitlab gitlab/gitlab \ --timeout 600 \ --set global.hosts.domain=***** \ --set global.hosts.externalIP=***** \ --set certmanager-issuer.email=***** \ --set gitlab.migrations.image.reposi

我按照此文档在GKE上安装Gitlab:

我的安装参数是:

helm upgrade --install gitlab gitlab/gitlab \
  --timeout 600 \
  --set global.hosts.domain=***** \
  --set global.hosts.externalIP=***** \
  --set certmanager-issuer.email=***** \
  --set gitlab.migrations.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ce \
  --set gitlab.sidekiq.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-sidekiq-ce \
  --set gitlab.unicorn.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ce \
  --set gitlab.unicorn.workhorse.image=registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ce \
  --set gitlab.task-runner.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-task-runner-ce \
  --set gitlab.gitlab-runner.runners.privileged=true \
  --set gitlab.gitlab-runner.runners.cache_dir="cache"
然后我创建了我的.gitlab-ci.yaml:

image: docker:latest

services:
  - docker:dind

variables:
  DOCKER_HOST: tcp://localhost:2375

stages:
  - package

package:
  stage: package
  before_script:
    - echo "${GKE_JSON_AUTH}" > gke-project-auth.json || exit 1
    - cat gke-project-auth.json | docker login -u _json_key --password-stdin https://eu.gcr.io || exit 1
  script:
    - docker info
我读过很多线程,都在
DOCKER\u HOST
privileged
参数中得到了解决方案,但我总是遇到以下错误:

无法连接到位于的Docker守护程序tcp://localhost:2375. 是 docker守护进程正在运行

我还尝试输入values.yaml文件:

runners:
  privileged: true
并执行此命令:

helm upgrade --reuse-values gitlab gitlab/gitlab -f values.yaml
但是没有失败


有什么想法吗?谢谢

Docker服务中的Docker将以其图像名称命名:Docker。您应该将
DOCKER\u HOST
设置为
tcp://docker:2375

我发现了我的错误。我们可以在这里看到“安装命令行选项”: 表示
privileged
参数为
gitlab runner.runners.privileged
gitlab.gitlab runner.runners.privileged
(且
缓存目录
不存在)。 因此,现在可以:

--set gitlab-runner.runners.privileged=true
显然,根据,这一问题最近与docker更新其映像
docker:dind
有关,该映像使用的是docker server的最新版本,该版本不再在
2375
上侦听,而是在
2376
上侦听

因此,我按照该条目中的建议更新了我的
.gitlab ci.yml
,它对我起了作用:

image: docker:stable

services:
  - docker:18.09-dind

...
[更新]


这是一个临时的解决办法。
docker:stable
docker:stable dind
图像现在已修复

此解决方案使用了
docker:18.09
docker:18.09-dind
图像

.gitlab ci.yml

build_image:
  stage: build
  image: docker:18.09
  variables:
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
  services:
    - docker:18.09-dind

有关此问题的更多讨论:

我已经尝试过此解决方案,并收到以下消息:
连接时出错:Posthttp://docker:2375/v1.39/auth: 拨打tcp:lookup docker on 10.0.0.10:53:没有这样的主机
在docker中使用docker时,文档说使用localhost-但它不起作用,上面也没有回答我有确切的答案同样的问题这对我不起作用。我还是一样的problem@NoahMartin您的完整命令中有哪些不起作用?这是我的问题:这是gitlab的新问题。正如我在第一条消息中在gitlab-ci.yaml文件中所写,DOCKER_主机必须是
tcp://localhost:2375
而非
tcp://docker:2375
让它正常工作。感谢您的帮助。我也试过了,但没有成功。上面的链接解释了我的问题。哦,谢谢你的更新。。。到目前为止,您在DOCKER\u主机中设置了什么?好的,我设置了
tcp://localhost:2375
返回,而不是
2376
,它又开始工作了。。。BahHi,我在Kubernetes上的Dind中尝试过(使用端口2376),但我发现2376需要TLS。我不得不回到旧的v18版本,以有2375回来。我可以在新版本的Dind映像中启用非TLS端口2375吗?谢谢。@icordoba嗨,我必须说这是暂时的修复。
docker:stable
docker:stable dind
图像不再存在此问题。关于你所问的问题,你可能会找到答案。谢谢@LeandroOrdonez我尝试了上一个docker:stable dind,但它只使用TLS监听端口2376,而不是2375。是否可以将其配置为也收听2375?