CI / CD 란?
개발 단계부터 배포까지 자동화하는 것.
Continuous Intergration + Continuous Deployment(Delivery)
지속적 통합 + 지속적 배포
배포를 자동화하는데는 여러가지 방법이 있지만 여기서는 GCP의 Cloud Build를 이용하여 깃허브저장소에 푸시가 됐을때 명령어들을 자동실행하여 배포한다.
깃허브 계정을 인증 후 저장소를 설정해준다.
트리거만들기 ^master$ 브랜치에 푸시되었을때만 실행
cloudbuild.yaml 파일을 실행
설정에 쿠버네티스 엔진 사용설정 (쿠버네티스 명령어 사용가능)
cloudbuild.yaml
steps: # 단계
- name: docker/compose:1.29.0 # docker-compose 다운로드 명령어 사용가능
args: # 명령실행
- -f
- class/28-01-deploy-with-docker/backend/docker-compose.prod.yaml # 깃 저장소내에서 yaml파일경로 찾아 빌드하기
- build # 띄어쓰기별로 한줄씩 또는 배열로 입력 ['-f', 'class...', 'build']
- name: docker/compose:1.29.0 # 다음 실행 - 내 GCP 컨테이너레지스트리에 등록
args:
- -f
- class/28-01-deploy-with-docker/backend/docker-compose.prod.yaml
- push
- name: gcr.io/cloud-builders/kubectl # kubectl 명령어 사용가능
args:
- set
- image
- deployment/mybackend
- my-backend-sha256-1=asia.gcr.io/codecamp-341008/my_backend:1.9 # 버전은 올려준대로 맞춰줘야한다
env: # 해당 쿠버네티스 클러스터 정보
- CLOUDSDK_COMPUTE_ZONE=asia-northeast3
- CLOUDSDK_CONTAINER_CLUSTER=mybackend-kubernetes-cluster