.yml 의 파이프라인을 이용한, 간단한 CI/CD를 적용해보도록 하겠습니다.
.yml파일 생성
steps:
# gradle BUILD
- name: 'gradle:8.5.0-jdk17'
args:
- './gradlew'
- 'clean'
- 'build'
# docker BUILD
- name: 'gcr.io/cloud-builders/docker'
args:
- 'build'
- '-t'
- 'asia-east1-docker.pkg.dev/goodong-graduation-project/goodong/goodong-api'
- '-f'
- '.deploy/Dockerfile'
- '.'
# docker PUSH
- name: 'gcr.io/cloud-builders/docker'
args:
- 'push'
- 'asia-east1-docker.pkg.dev/goodong-graduation-project/goodong/goodong-api:latest'
# CloudRun DEPLOY
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- 'run'
- 'deploy'
- 'goodong-api'
- '--image'
- 'asia-east1-docker.pkg.dev/goodong-graduation-project/goodong/goodong-api'
- '--platform'
- 'managed'
- '--allow-unauthenticated'
- '--region'
- 'asia-east1'
images:
- 'asia-east1-docker.pkg.dev/goodong-graduation-project/goodong/goodong-api'
options:
logging: CLOUD_LOGGING_ONLY
각 파이프라인은 다음과 같은 흐름을 가지고있습니다.
1. gradle build을통해 spring boot application을 build하여 jar파일을 만듭니다.
2. docker build를 통해 방금 만든 jar파일을 docker image로 변환합니다.
3. artifact registry에 docker image를 push합니다.
4. gcp run에 해당 docker image를 deploy하여 최종 실행합니다.
GCP build 트리거 만들기
트리거 만들기 클릭후, 아까 생성한 .yml파일의 경로와, github repository등록 해 줍니다.
그 이후에는 , github push가 일어날떄마다 자동으로 jar 빌드-> 이미지 빌드 -> 이미지 배포 -> 최종 배포
파이프라인을 수행하게됩니다.
'Cloud > GCP' 카테고리의 다른 글
[GCP] application.properties의 민감한 정보 환경변수 등록하기 (0) | 2024.07.21 |
---|---|
[GCP] Google Cloud Run을 이용해 Spring Boot project배포 (0) | 2024.07.21 |