Docker GitLab CI runner可以';连接不到tcp://localhost:2375 在库伯内特斯
我按照此文档在GKE上安装Gitlab: 我的安装参数是: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
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?