[Docker] 도커 런타임에 Profile 적용하기
이 글을 참고했다.
Spring Boot 프로젝트 구성
application.yml
spring:
profiles.active: dev # ✅ 로컬에서 실행시 기본 프로필은 dev
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
globally_quoted_identifiers: true
format_sql: true
dialect: org.hibernate.dialect.MySQL8Dialect
mvc:
pathmatch:
matching-strategy: ant_path_matcher
data:
web:
pageable:
default-page-size: 5
servlet:
multipart:
max-file-size: 3MB
max-request-size: 5MB
config:
import:
- aws-s3.yml
logging.level:
org.hibernate.SQL: debug
---
spring:
config.activate.on-profile: prod # ✅ prod
---
spring:
config.activate.on-profile: dev # ✅ dev
datasource:
url: jdbc:mysql://127.0.0.1:3306/dasibom-prac?serverTimezone=UTC&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: admin
password: admin
로컬에서 실행하면 기본적으로 dev 프로필이 적용되므로 로컬 db를 이용한다.
prod
환경에서는 mysql 컨테이너를 이용하기 때문에 datasource
를 설정하지 않았다.
Dockerfile
FROM eclipse-temurin:11-jdk
VOLUME /tmp
ARG JAR_FILE=./build/libs/practice-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","/app.jar"] # ✅ 프로필을 prod로 설정해준다.
EXPOSE 8080
💛 개인 공부 기록용 블로그입니다. 👻