2016-08-22 2 views
1

최근에 GitLab의 Docker Registry 기능을 켜고 바탕 화면에서 제대로 작동합니다. 다음 단계는 GitLab CI를 통해 소프트웨어를 빌드 할 때 레지스트리를 사용하는 것입니다. 공식적인 트위터 계정에 언급 된 여러 가지 medium.com 게시물과 문서에서 다양한 방법으로 설명되는 고정 이미지 대신 GitLab의 레지스트리에서 이미지를 가져올 방법을 찾을 수 없습니다. 그래서GitLab의 Docker 레지스트리에서 .gitlab-ci.yml을 가져 오는 방법은 무엇입니까?

Running with gitlab-ci-multi-runner 1.4.1 (fae8f18) 
Using Docker executor with image registry.host.tld/NAMESPACE/PROJECT:latest ... 
Pulling docker image registry.host.tld/NAMESPACE/PROJECT:latest ... 
ERROR: Build failed (system failure): API error (500): Get https://registry.host.tld/v2/NAMESPACE/PROJECT/manifests/latest: error parsing HTTP 403 response body: no error details found in HTTP response body: "{\"message\":\"forbidden\",\"status\":\"error\",\"http_status\":403}" 

:

우리는 우리가 권한 오류가 .gitlab-ci.yml에서 이미지 지시어를 통해 레지스트리에서 이미지를 지정하면

는 (I 작업자 아마도 투명 스스로 권한을 부여하지만, 그렇지 않을 것으로 예상) 작업자가 도커 로그인을 호출해야합니다. 그 두 가지 문제 :

  1. 우리는 LDAP를 통해 사용자를 인증합니다. CI 서버에 대한 정적 사용자를 실제로 만들어야합니까?
  2. 우리는 여기에서 꽤 많은 작업자를 운영합니다. 모든 것을 하나씩 SSH 할 수있는 많은 작업입니다.

나는 아주 명백한 것을 간과 했습니까? 아니면 모든 작업자 노드에서 도커 로그인 경로를 찾아야합니까?

GitLab 8.10.6을 실행합니다.

답변

0

이 문제도 발생했습니다. gitlab 주자 실행을 qhere https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/1663

그냥 컴퓨터에 개인 레지스트리에 로그인해야 문서로 다스 려 : 또한 gitlab-CI-멀티 러너 프로젝트에 그것에 대해 문제가 enter link description here

docker 컨테이너에서 gitlab-runner를 사용하는 경우 로그인 자격 증명을 사용하여 파일을 gitlab 러너 컨테이너에 마운트해야합니다. 는 그래서 gitlab 컨테이너를 실행하는 명령은 다음과 같습니다

docker run -d --name gitlab-runner --restart always \ 
     -v /var/run/docker.sock:/var/run/docker.sock \ 
     -v /srv/gitlab-runner/config:/etc/gitlab-runner \ 
     -v /root/.docker/config.json:/root/.docker/config.json \ 
      gitlab/gitlab-runner 

레지스트리에이 예 루트 musst 로그인을 다스 려 :

docker login https://registry.host.tld:5000 

여기서 중요한 부분은 등록을위한 URI입니다. 나는 당신의 유사한 오류를 가지고 실행하여 극복 :

docker login https://registry.host.tld:5000/v2/ 

이 다른 레지스트리에 다를 수 있습니다, 당신은 eoor 메시지를보고 로그인 경로로/공간/프로젝트의 전 부분을 사용해야합니다.

예. 오류 메시지는 다음과 같습니다 경우 :

ERROR: Build failed (system failure): API error (500): 
Get https://registry.host.tld/v1/NAMESPACE/PROJECT/manifests/latest: 
error parsing HTTP 403 response body: no error details found in HTTP response body: " 
{\"message\":\"forbidden\",\"status\":\"error\",\"http_status\":403}" 

로그인은 할 수 musst :

docker login https://registry.host.tld/v1/ 

희망이 도움이됩니다.

관련 문제