티스토리 뷰
Development/Java, Kotlin, Frameworks
Kubernetes에서의 Spring boot Profile 설정
KimDoubleB 2022. 1. 18. 19:38Spring 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
반응형
'Development > Java, Kotlin, Frameworks' 카테고리의 다른 글
Reactor just, defer, fromCallable 에 대하여 (3) | 2022.03.15 |
---|---|
JUnit5 Tag & Filtering (2) | 2022.02.17 |
[Quarkus] Scopes (0) | 2021.12.08 |
Intellij - error: invalid source release: 17 오류 (3) | 2021.10.20 |
Java Proxy 설정 가이드 (0) | 2021.09.10 |
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- container
- MySQL
- tag
- Spring
- java
- 백준
- gradle
- Istio
- 로그
- 비동기
- jasync
- Kubernetes
- WebFlux
- Log
- hexagonal architecture
- Spring boot
- 쿠버네티스
- HTTP
- 일상
- boj
- 클린 아키텍처
- 하루
- c++
- Clean Architecture
- python
- k8s
- 알고리즘
- Intellij
- Algorithm
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함