티스토리 뷰

Spring boot 웹 서버를 개발하고 Kubernetes에 배포할 때, Profile(local, dev, prd, ...)을 설정하는 법을 알아보자.

 

Dockerfile을 사용해 컨테이너 이미지 빌드

Dockerfile을 통해 이미지 빌드 시, ENTRYPOINT에서 Jar 파일을 실행하며 Dspring.profiles.active 옵션을 통해 설정할 수 있다.

...
ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "some.jar"]

해당 컨테이너 이미지를 실행시키면, dev profile로 설정되어 Spring boot 웹 서버가 실행된다.

 

 

Buildpacks(ex. gradle bootBuildImage)를 통해 컨테이너 이미지 빌드

이 글에서도 Buildpacks을 이용한 컨테이너 이미지 빌드 방법을 다뤘었다.

Gradle을 사용한다면 간단하게 `./gradlew bootBuildImage`를 통해 컨테이너 이미지를 빌드할 수 있다.

`build.gradle`에서 해당 Task 시에 Dockerfile을 할 때와 같이 옵션을 줘서 profile을 설정할 수도 있지만, 다른 방법으로도 가능하다.

그건 바로 SPRING_PROFILES_ACTIVE 환경변수를 등록해 활용하는 것이다.

spec:
  containers:
    - name: ...
      image: ...
      imagePullPolicy: ...
      ...
      env:
        - name: SPRING_PROFILES_ACTIVE
          value: dev

빌드 시 다른 설정 없이도 kubernetes manifest로 작성이 가능하고, 배포 시에 해당 Profile 환경변수를 읽어들여 설정한 Profile로 spring boot 웹 서버가 실행된다.

320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함