[GCP] application.properties의 민감한 정보 환경변수 등록하기

2024. 7. 21. 18:27·Cloud/GCP

 

 

CI/CD중에 application.properties의 내용을 감추기위해서는,

 

Google Cloud Platform에서 제공하는 환경변수 등록을 사용해야 합니다.

 

 

CI/CD를 하기위해선, 깃허브 리파지토리와 연동을 해야하는데,

application.properties에 민감한정보들을 깃허브상에 올릴수가 없어, 

난감한 상황이 발생합니다.

 

 

기존 application.properties에 

server.port=8000

 

다음과같은 환경변수가 저장되어있다고 가정하고,

 

application.properties의 내용을 환경변수로 올리는 과정을 설명하도록 하겠습니다.

 

 

 

application.properties 변경

steps:
  # gradle BUILD
  - name: 'gradle:8.5.0-jdk17'
    args:
      - './gradlew'
      - 'clean'
      - 'build'
    env:
      - 'SERVER_PORT=${_SERVER_PORT}'

  # 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'
    env:
      - 'SERVER_PORT=${_SERVER_PORT}'


images:
  - 'asia-east1-docker.pkg.dev/goodong-graduation-project/goodong/goodong-api'

options:
  logging: CLOUD_LOGGING_ONLY

 

 

gradle build시 , 해당 env가 필요합니다.

(docker build시에 env가 필요하지않는이유는 이미 gradle build시에 환경변수가 이미 .jar에 올라와있기때문입니다)

 

또한, deploy시에 , 해당 env가 또 필요합니다.

저는 여기서 이해하는데 힘들었는데,

또 env가 필요한이유는, GCP에서 CI 와 CD가 아예 독립적인것이기 떄문입니다.

 

CI는 그냥 컴파일 후, 도커이미지로 만드는 역할만을 수행합니다.

그과정에서 컴파일시에 환경변수가 필요합니다.

 

CD는 해당 도커이미지를 실행하는 역할만을 수행합니다.

그 과정에서 실제 실행에 필요한 환경변수가 필요합니다.

 

 

GCP Build 트리거에서 환경변수 설정

 

 

CI과정에서 필요한 환경변수를 이곳에 등록합니다.

 

GCP Cloud Run에서 환경변수 설정

 

 

CD에서 필요한 환경변수를 똑같이 적어줍니다.

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'Cloud > GCP' 카테고리의 다른 글

[GCP] Cloud Build를 이용해, CI/CD 파이프라인 적용해보기  (0) 2024.07.21
[GCP] Google Cloud Run을 이용해 Spring Boot project배포  (0) 2024.07.21
'Cloud/GCP' 카테고리의 다른 글
  • [GCP] Cloud Build를 이용해, CI/CD 파이프라인 적용해보기
  • [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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
keemjoonsung
[GCP] application.properties의 민감한 정보 환경변수 등록하기
상단으로

티스토리툴바