[GCP] Cloud Build를 이용해, CI/CD 파이프라인 적용해보기

2024. 7. 21. 17:49·Cloud/GCP

 

 

.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
'Cloud/GCP' 카테고리의 다른 글
  • [GCP] application.properties의 민감한 정보 환경변수 등록하기
  • [GCP] Google Cloud Run을 이용해 Spring Boot project배포
keemjoonsung
keemjoonsung
  • keemjoonsung
    구동
    keemjoonsung
  • 전체
    오늘
    어제
  • keemjoonsung
    • 분류 전체보기 (81)
      • Projects (7)
        • web (4)
        • plugin (3)
      • Trouble Shootings (5)
        • 성능 개선 (4)
        • 버그 해결 (1)
      • Backend (7)
        • Spring Boot (5)
        • Java (0)
        • Elasticsearch (1)
        • Redis (1)
      • PS (50)
        • 자료구조 (11)
        • 다이나믹프로그래밍 (18)
        • 브루트포스(dfs,bfs,backtracking) (13)
        • 구현 (2)
        • 이분탐색 (1)
        • 그리디 (0)
        • 다익스트라 (3)
        • 기타 알고리즘 (2)
      • Cloud (5)
        • AWS (2)
        • GCP (3)
      • CS (5)
        • network (1)
        • algorithm (4)
      • Etc (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우선순위큐
    헥사고날 아키텍쳐
    다익스트라
    ps
    스프링부트
    백준
    Spring
    GCP
    BFS
    인텔리제이
    baekjoon
    spring boot
    dp
    페이지
    dfs
    브루트포스
    jpa
    다이나믹프로그래밍
    스프링
    스프링 부트
    java
    redis
    Plugin
    intellj
    코테
    코딩테스트
    자바
    배포
    레디스
    헥사고널
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
keemjoonsung
[GCP] Cloud Build를 이용해, CI/CD 파이프라인 적용해보기
상단으로

티스토리툴바