2016-07-01 2 views
1

며칠 동안 문제가 생겨서 이해할 수 없으므로 문제를 해결해 드리겠습니다.Gitlab CI 빌드에서 Docker로 tcp I/O 시간 제한을 입력하십시오.

개인 Gitlab + Gitlab CI + Gitlab Docker 레지스트리 환경을 설정하여 코드를 호스팅 및 테스트하고 러너에서 코드를 고정시킵니다.

Docker : dind 이미지를 사용하여 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 
나는 등 다양한 것들을 시도

: - 모든 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에 대한 HTTP 액세스 (포트 80) jwilder을 통해 이동/프록시의 nginx-하지만 망할 놈의 액세스와 부두 노동자 레지스트리 액세스 : 나는 세 가지 주요 컨테이너 (나는 다른 사람을 가지고 있지만,이 문제와 관련이없는)이 직접적이다.

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

내 문제는 해당 컨테이너 내부 것으로 보인다 : 나는 빌드를 실행하면

, 나는 부두 노동자의 집행, 따라서 도커 컨테이너가 내장되어 사용합니다. 그러나 내가 생각한 일반적인 용의자 (네트워크 및 DNS)는 다른 IP/도메인과 잘 작동하므로 문제에 대한 단서가 없습니다.

아이디어가 있으십니까?

답변

0

여기에 귀하의 레지스트리가 동일한 Docker 호스트에서 실행되고 있다고 가정합니다. 따라서 공개 IP의 호스트 자체와의 통신이 손상 될 수 있습니다. 아마도 iptables 규칙이 잘못되었거나 비슷한 이유로 인해서 일 것입니다.

+0

그게 전부 였어! 내가 호스트에서 iptables을 플러시하여 시도하고 제대로 작동합니다. 감사! 내 iptables 구성을 조정할 것입니다. –