1

docker-compose을 통해 4 컨테이너 앱을 배포하기 위해 GitLab CI 러너를 사용하여 자동 배포를 설정하려고합니다. docker pull 명령을 사용하여 컨테이너 이미지를 가져올 수 있지만 전체 docker-compose 스크립트를 실행하려면 Google Compute Engine 인스턴스에 연결하는 방법이 고생했습니다.Docker를 사용하여 GitLab CI에서 Google Container Engine 인스턴스로 어떻게 배포합니까?

eval $(docker-machine env <machine-instance>) 
docker-compose up -d 

하지만 내 .gitlab-ci.yml 스크립트를 사용할 수 docker-machine을 가지고 있지 않습니다

일반적으로 내 로컬 컴퓨터에서, 내가 좋아하는 뭔가를 실행합니다.

  1. 내가 내 .gitlab-ci.yml 파일에 script 섹션을 통해 docker-machine를 설치해야합니까?
  2. 매번 인스턴스를 새로 만들지 않고 인스턴스를 프로비저닝하려면 어떻게해야합니까? 일반적으로 내 로컬 호스트에서 을 실행 한 후 을 실행 한 다음 위의 eval 명령을 사용하여 인스턴스에 다시 연결하십시오. 그러나이 작업은 CI와 어떻게 작동합니까?

여기 내 .gitlab-ci.yml의 샘플입니다 :

deploy staging: 
    image: docker:latest 
    services: 
     - docker:dind 
    environment: staging 
    stage: deploy 
    before_script: 
     - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN my-registry.githost.io 
    script: 
     - docker pull my-registry.githost.io/group/project1:develop 
     - docker pull my-registry.githost.io/group/project2:develop 
     - docker pull my-registry.githost.io/group/project3:develop 
     - docker pull my-registry.githost.io/group/project4:develop 
     - docker-machine ls 
+0

[이 링크] (http://totallyon.me/2016/09/22/running-gitlab-ci-runner-in-gce/) 도움이 될 수 있습니다. [Cloud Launcher] (https://cloud.google.com/launcher/)에는 미리 구성된 GitLab 버전도 있습니다. – Carlos

답변

0

회원님이이 경우에 대한 고정 표시기 기계를 필요 확인하십시오. 당신은 그것을 제거하고 싶을지도 모릅니다.

https://github.com/docker-library/docker/blob/36e2107fb879d5d5c3dbb5d8d93aeef0a2d45ac8/1.12/Dockerfile

그래서 새를 작성해야합니다

다시 귀하의 질문에 가고, 당신이 사용하고있는 고정 표시기 이미지도 고정 표시기 기계와 함께 제공되지 않으며, 고정 표시기-작성 설치된 이미지 2 개와 함께 제공되는 이미지 (또는 기존 이미지)를 찾습니다. 그래서 .gitlab-ci.yml에서 대신 image: docker:latest, 당신은 어쩌면 GCE와 함께 사용하기 위해 GitLab CI 러너에 고정 표시기 기계를 설치해야 image: mydocker

+0

결국'docker-machine '을 사용하여 Google Compute Engine 인스턴스에 연결하여'eval $ (docker-machine env ) '명령을 통해 앱을 배포하고 싶습니다. –

관련 문제