Cloud Build

tutuh·2022년 5월 6일
0

Cloud Build

기본적으로 google cloud 클러스터에 올라가 있는 서버를 재배포 하려 할 경우 많은 명령어를 입력해야했습니다.
먼저 도커를 빌드한뒤 레지스트리를 푸시해줘야하며, 푸시를 한 이후에도 쿠버네티스에 접속해서 이미지를 업데이트 해줘야 합니다. Cloud Build 를 사용할 경우 이러한 과정을 GitHub에 push만하면 저희가 직접 명령어를 입력해 줄 필요가 없이 이러한 과정을 자동으로 해주게 됩니다.

GCP콘솔에서 cloud build > 트리거 메뉴로 들어가주면 저장소 연결이라는 버튼이 있습니다.
저장소 연결을 클릭하면 저장소 연결 설정창이 나옵니다.

GitHub을 선택한 뒤 GitHub에서 GCP연결을 승인합니다.
그리고 자신이 push하게될 저장소를 선택한 뒤 연결을 해주면 됩니다.
이제 연결이 완료되었으면 트리거를 만들어 주면 됩니다.

이름을 설정 해준뒤 방금연결한 저장소를 선택해주고 자신이 push하게될 브랜치를 설정해줍니다. 구성에서 Cloud Build 구성 파일(YAML 또는 JSON)을 선택해준뒤 자신이 cloudbuild.yaml파일을 저장하게뒬 위치를 설정해준뒤 만들어주시면 됩니다.
그리고 추가적으로 cloud build 설정에 들어가셔서 Kubernetes Engine을 사용 설정으로 해주셔야 정상적으로 작동하게 됩니다.

그후 방금 자신이 설정할 파일 위치에 cloudbuild.yaml 파일을 저장해주면 됩니다.

// cloudbuild.yaml
steps:
  - name: docker/compose:1.29.0
    args:
      - -f
      - main-project/backend/docker-compose.yaml
      - build

  - name: docker/compose:1.29.0
    args:
      - -f
      - main-project/backend/docker-compose.yaml
      - push

  - name: 'gcr.io/cloud-builders/kubectl'
    args:
      [
        'set',
        'image',
        'deployment/codecamp-backend-api-resource',
        'my-backend-sha256-1=asia.gcr.io/backend01-342301/my_backend:1.0',
        // my_backend:1.0과 같은경우는 버전이 올라갈경우 docker-compose.yaml 혹은 
        // docker-compose.prod.yaml 파일에 
        // 있는 이미지 파일의 버전또한 변경해주어야 합니다. 
        // 둘이 동일한 버전을 가지고 있어야 제대로 작동하게 됩니다.
      ]
    env:
      - CLOUDSDK_COMPUTE_ZONE=asia-northeast3
      - CLOUDSDK_CONTAINER_CLUSTER=autopilot-cluster-1

이렇게 만들어 GitHub 저장소에 push 해주게 되변 자동으로 배포가 완료되게 됩니다.

주의할 점

이러한 기능은 자동으로 빌드가 되기 때문에 일일히 명령어를 입력해 주지 않아도 되기 때문에 매우 편리하지만, 따로 확인 과정을 거치지 않고 자동으로 배포가 되어버리기 때문에 주의가 필요합니다.

0개의 댓글