2017-09-25 1 views
0

digitallumberjack에서 제공하는 GitLab CI 러너를 사용하려고하는데 컨테이너 내부에서 Docker 명령을 사용할 수 있도록 지원합니다.GitLab CI 러너 컨테이너에서 Docker를 사용할 수 없습니다.

GitLab CI 러너 스크립트 :

docker run --name gitlab-ci-multi-runner -d --restart=always \ 
    --volume /var/run/docker.sock:/var/run/docker.sock \ 
    --volume /mnt/data/gitlab/gitlab-runner:/home/gitlab_ci_multi_runner/data \ 
    --env='CI_SERVER_URL=https://gitlab.dev.abc.net/ci' --env='RUNNER_TOKEN=RijUZPnMjGeNF2JYt' \ 
    --env='RUNNER_DESCRIPTION=runnerA' --env='RUNNER_EXECUTOR=docker' \ 
    --env='RUNNER_DOCKER_IMAGE=docker:17.07.0-ce' --env='RUNNER_DOCKER_MODE=socket' \ 
    --link gitlab.dev.abc.net \ 
    digitallumberjack/docker-gitlab-ci-multi-runner:v9.3.0-1 

.gitlab-ci.yml 내용 :

image: node:6.11 

types: 
     - build 
     - deploy 

build_app: 
     type: build 
     script: "bash chmod +x ./configure_proxy_artifactory.sh" 
     script: "bash ./configure_proxy_artifactory.sh" 

GitLab CI가 실행을 구축 할 때, 내가 얻을 주자 로그에 다음과 같은 오류 :

./configure_proxy_artifactory.sh: line 13: docker: command not found 

Docker가 여전히 위의 러너 스크립트로 구성되어 있지 않습니다. 어떻게이 문제를 해결할 수 있을지 알기나 해?

UPDATE : 나는 당신이 공식 Gitlab 러너의 이미지를 사용하지 않는 이유를 잘 모르겠습니다

[email protected]:/home/gitlab_ci_multi_runner# ls -l /var/run/docker.sock 
srw-rw---- 1 root docker 0 Jul 21 00:53 /var/run/docker.sock 
[email protected]:/home/gitlab_ci_multi_runner# docker ps 
bash: docker: command not found 
+0

컨테이너에 액세스하여 도커 ps를 수행 할 수 있습니까? 또한 /var/run/docker.sock이 있는지 그리고 어떤 권한을 가지고 있는지 살펴보십시오. – Sergiu

+0

@Sergiu : 내 게시물의 'UPDATE'를 확인하십시오. – Technext

답변

0

: 컨테이너 내에서 여기 내 관측이다 gitlab/gitlab 주자 : 최신하지만 난 그냥 믿고 기본 설정의 문제는 또한 --privileged 플래그를 전달하고 도움이되는지 확인하는 것이 좋습니다.

+0

'--privileged' 플래그를 추가 한 후에도 오류가 지속됩니다. :(현재 현재 Docker 컨테이너로 실행중인 공식 Omnibus GitLab을 사용하고 있습니다. 그러나 Kubernetes에서이 작업을 곧 진행할 예정입니다. Kubernetes에서는 GitLab, Redis 및 Postgres 용 컨테이너를 별도로 사용할 예정입니다.이를 위해 [sameersbn 's ] (https://github.com/sameersbn/docker-gitlab) 이미지를 볼 수 있습니다. 호환성 문제가 발생하지 않도록하기 위해 이들을 사용하고 싶습니다. 또한 GitLab의 공식 러너가 Docker 액세스를 제공한다고 생각하지 않습니다. 그것? – Technext

+1

그럼 /var/run/docker.sock과 동일한 설정으로 이미지를 사용했다가 런타임에 변수를 전달할 필요가 없도록 데이터 볼륨을 마운트 중입니다. Runner01 : 권한 : true 이미지 : gitlab/gitlab-runner : 최신 stdin_open : true 볼륨 : -/var// docker.sock을 실행 /var/run/docker.sock -/데이터/러너/설정을 :을/etc/gitlab 주자 -/데이터/gitlab/러너/데이터/데이터 청각 장애를 : 사실 레이블 : 를 io.rancher.container.pull_image : always io.rancher.scheduler.global : 'true' – Sergiu

+0

내가 볼 수 있듯이 Rancher를 사용하여 Gitlab 서버와 주자를 시작했습니다.이 도움이 되었기를 바랍니다. – Sergiu

관련 문제