2016-07-01 51 views
1

Ich habe ein Problem seit ein paar Tagen, die ich nicht verstehen kann, beiseite zu beheben.Dial Tcp I/O Timeout mit Docker in Gitlab CI bauen

Ich arbeite an der Einrichtung einer privaten Gitlab + Gitlab CI + Gitlab Docker-Registrierungsumgebung, um meinen Code zu hosten und zu testen und daraus Docker-Bilder in einem Runner zu erstellen.

Ich versuche, ein Docker-Bild in einem Gitlab-Runner mit dem Andockfenster zu erstellen: dind image. Ich habe folgende Fehlermeldung:

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 

Ich habe versucht, verschiedene Dinge, einschließlich: - ein Ping-Signal an eine beliebige IP-Verbindung funktioniert - Port offen ist (wenn ich versuche, auf eine andere Registrierung auf Port 5005 anmelden es funktioniert) - Anmeldung von meinem lokalen Rechner funktioniert einwandfrei

Meine Architektur ist voll Docker auf dem Server. Ich habe drei Hauptcontainer (ich andere haben, aber nicht zu diesem Problem):

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 

Der HTTP-Zugriff auf Gitlab (Port 80) durchlaufen jwilder/nginx-Proxy, aber die Git-Zugang und die Docker Zugriff auf die Registry sind direkt.

Wenn ich den Build starten, verwende ich den Testamentsvollstrecker Docker, also ein Docker Behälter aufgebaut ist:

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

Mein Problem scheint innerhalb dieser Behälter zu sein. Die üblichen Verdächtigen (Netzwerk und DNS) funktionieren jedoch gut mit anderen IP/Domänen, so dass ich keine Ahnung von dem Problem habe.

Irgendeine Idee?

Antwort

0

Ich nehme an, hier läuft Ihre Registrierung auf dem gleichen Docker Host, also meine Vermutung wäre, dass die Kommunikation vom Host zum Host selbst auf der öffentlichen IP ist kaputt, wahrscheinlich wegen einer schlechten iptables Regeln oder etwas Ähnliches.

+0

Das war es! Ich habe versucht, iptables auf dem Host zu leeren und es funktioniert ordnungsgemäß. Vielen Dank! Ich werde meine iptables-Konfiguration anpassen. –