2017-02-02 3 views
2

나는 gitlab-ci에 초보자입니다. 나는 docker 집행자와 함께 개인 서버에 gitlab 주자를 설정했다. 새로운 커밋을 내 레포에 병합하면 빌드가 트리거됩니다. 웹 UI가 Gitlab 인 것을 확인할 수 있습니다.
제가 알기 론, 작업은 러너 서버 자체에서 실행되므로 개인용 러너 서버에 도커 컨테이너가 생성됩니다. 하지만 컨테이너를 볼 수 없는데, 내가 할 때 docker ps -a 또는 나는 컨테이너를 만드는 데 사용되는 도커 이미지조차도 볼 수 없습니다.
컨테이너/이미지 실행 작업을 확인할 수있는 방법이 있습니까? 아니면 내 이해에 어떤 ​​실수가 있습니까?gitlab-ci 러너의 도커 실행자 | 빌드가 진행되는 도커 컨테이너를 어떻게 볼 수 있습니까?

웹 콘솔에서 작업 로그를 볼 수 있지만 해당 로그는 CLI에서 볼 수 있습니까?

언제든지 잘못된 부분을 수정하십시오.

+0

'docker ps'를 (를) 실행중인 사용자에게 실행중인 컨테이너를 볼 수있는 권한이 있는지 확인하십시오. 나는 소켓 공유와 함께 원래의 gitlab-runner docker 이미지를 사용하고 있는데, 시작한 후 (그리고 GitLab에 등록) 컨테이너가 항상 실행되는 것을 볼 수있다. 주자가 일을하는 동안, 나는'docker ps'에 더 많은 항목을 볼 수 있습니다. 그들은'docker ps -a'에서 멈추는 것처럼 보입니다. –

답변

1

도커 ps -a를 사용하면 컨테이너를 만드는 데 사용되는 이미지 도커 이미지를 볼 수 없습니다.

docker : dind service (docker in docker)를 활성화 한 경우 예상됩니다.

컨테이너는 Docker socket binding으로 만 표시되며, 도커 명령으로 생성 된 모든 컨테이너는 러너의 하위 노드가 아니라 러너의 형제가됩니다.

docker 데몬을 공유하면 효과적으로 컨테이너의 모든 보안 메커니즘을 사용하지 않도록 설정하고 호스트를 권한 에스컬레이션에 노출시켜 컨테이너가 끊어 질 수 있습니다.
예를 들어 프로젝트가 docker rm -f $(docker ps -a -q)으로 실행되면 GitLab Runner 컨테이너가 제거됩니다.

+0

docker를 활성화해야하는 이유를 이해할 수 없습니다. 도커 컨테이너가 gitlab 러너 호스트에서 실행된다고 생각하지 않습니까? 그렇다면'docker ps -a'를 실행하거나 빌드가 실행 된 후에 컨테이너가 보이도록해야합니다. – Rohanil

+0

@Rohanil 그래서 쉘 실행 프로그램을 사용하고 있습니까? (https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-shell-executor) – VonC

+0

[도커 실행 프로그램] (https://docs.gitlab.com/runner/executors/)을 사용하고 있습니다. docker.html) – Rohanil