2016-09-21 5 views
3

docker 이미지를 만들 수있는 Gitlab CI를 설정하려고 시도했지만 처음에는 DinD가 별도의 주자 전용으로 활성화되었고 Blog Post은 제안했습니다.Gitlab을 사용하는 Docker-in-Docker

이 DinD 주자를 등록하는 동안 플래그로 설정되어 주자의 특권 모드를 가능하게 필요 실행, 공유 주자 곧 활성화 될 수 있지만, 공유 주자

답변

6

공유 주자에 대한 동등한 메커니즘을 찾을 수 없습니다 이제 Docker 이미지를 만들 수 있습니다. 다음은 사용할 수있는 작업입니다.

stages: 
    - build 
    - test 
    - deploy 

# ... 
# other jobs here 
# ... 

docker:image: 
    stage: deploy 
    image: docker:1.11 
    services: 
    - docker:dind 
    script: 
    - docker version 
    - docker build -t $CI_REGISTRY_IMAGE:latest . 
    # push only for tags 
    - "[[ -z $CI_BUILD_TAG ]] && exit 0" 
    - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_BUILD_TAG 
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY 
    - docker push $CI_REGISTRY_IMAGE:$CI_BUILD_TAG 

이 작업은 Gitlab에서 제공하는 컨테이너 레지스트리를 사용한다고 가정합니다. 빌드 커밋에 버전 번호가 태그 된 경우에만 이미지를 푸시합니다.

  • Predefined variables에 대한 문서입니다.

  • 저장소에 커밋되지 않은 서비스의 종속성에 대한 임시 아티팩트를 캐시하거나 생성해야합니다. 이것은 다른 작업에서 수행되어야합니다. 예 : node_modules은 일반적으로 저장소에 포함되어 있지 않으므로 build/test 단계에서 캐싱해야합니다.

+0

"공유 주자가 이제 Docker 이미지를 만들 수 있습니다."- GitLab.com에서 공유 주자라고 생각합니까? Docker Build에 대한 보안 공유 GitLab Runner 설정은 어떻게 설정합니까? https://gitlab.com/gitlab-org/gitlab-ce/issues/31379도 참조하십시오. – bbodenmiller