
CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment)를 의미한다. 이는 소프트웨어 개발과 배포 과정을 자동화하여, 코드 변경이 더 빠르고 안전하게 배포될 수 있도록 하는 방법론이다.
Cloud Build:
steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/${project-id}/echo-be:$COMMIT_SHA', '.']
# Push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/${project-id}/echo-be:$COMMIT_SHA']
# Deploy container image to Cloud Run
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- 'run'
- 'deploy'
- 'echo-be'
- '--image'
- 'gcr.io/${project-id}/echo-be:$COMMIT_SHA'
- '--region'
- 'asia-northeast3'
images:
- 'gcr.io/echo-cloud-427211/${project name}:$COMMIT_SHA'
docker build 명령을 사용하여 코드가 빌드된다.cloudbuild.yaml 파일에는 테스트 단계가 포함되어 있지 않지만, 이 단계를 추가하여 CI를 강화할 수 있다.)cloudbuild.yaml 파일을 실행하여 빌드 프로세스를 시작한다.docker build):docker push):gcloud run deploy):
위의 사진과 같이 어떠한 상황에서 트리거를 발생시킬지 정할 수 있다.
나의 경우 cloudBuild.yaml 파일을 생성해서 CI 설정을 하기 때문에 Cloud Build 구성 파일로 설정하였다.