首页 文章

在Gitlab CI构建中使用Docker拨打tcp i / o超时

提问于
浏览
2

我有一个问题,因为我无法理解几天,放下修理 .

我正在设置一个私有的Gitlab Gitlab CI Gitlab Docker注册表环境来托管和测试我的代码,并在跑步者中从它构建docker镜像 .

我正在尝试使用docker:dind image在Gitlab运行器中构建Docker镜像 . 我有以下错误:

gitlab-ci-multi-runner 1.3.2 (0323456)
Using Docker executor with image docker:latest ...
Pulling docker image docker:dind ...
Starting service docker:dind ...
Waiting for services to be up and running...
Pulling docker image docker:latest ...
Running on runner-c682f650-project-23-concurrent-0 via 4b1582b2cffb...
Fetching changes...
HEAD is now at 7f10ed4 Finalize Docker and Gitlab CI workflow
Checking out 7f10ed4c as gitlab-ci-docker...
$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.ademis.com:5005
Error response from daemon: Get https://registry.ademis.com:5005/v1/users/: dial tcp 46.105.98.95:5005: i/o timeout

我尝试了各种各样的东西,包括: - ping到任何IP工作正常 - 端口是打开的(当我尝试登录到端口5005上的另一个注册表时它工作) - 从我的本地机器登录正常工作

我的架构在服务器上是完整的Docker . 我有三个主要容器(我有其他容器,但与此问题无关):

jwilder/nginx-proxy            devserver_front_1
    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp

gitlab/gitlab-ce:latest        devserver_gitlab_1
    80/tcp, 0.0.0.0:22->22/tcp, 0.0.0.0:5000->5000/tcp, 0.0.0.0:5005->5005/tcp, 443/tcp

gitlab/gitlab-runner:latest    devserver_runner_1

对Gitlab(端口80)的HTTP访问通过jwilder / nginx-proxy,但Git访问和Docker注册表访问是直接的 .

当我启动构建时,我使用Docker Actuator ,因此构建了一个Docker容器:

8ae8af78bc1b                   runner-c682f650-project-23-concurrent-0-cache-b36a40d3c05f7c6ff01d711a44f0d239

我的问题似乎是在那个容器内 . 但是,我想到的常见嫌疑(网络和DNS)与其他IP /域一起运行良好,所以我对此问题没有任何线索 .

任何的想法?

1 回答

  • 1

    我想这里你的注册表是在同一个Docker主机上运行的,所以我的猜测是在公共IP上从主机到主机本身的通信被破坏,可能是因为iptables规则不好或类似的东西 .

相关问题