DevOps/Docker
Docker | Spring Boot, Next.js 배포 | Spring boot 배포하기
개발자티포
2022. 11. 3. 16:52
728x90
반응형
1. Dockerfile 작성
프로젝트 루트경로에 작성해준다.
FROM openjdk:11
# FROM amazoncorretto:11 ==> amazon corretto 11 사용할 경우
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
# ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]
# => 설정파일을 분리해서 사용할 때
# java -jar -Dspring.profiles.active=prod app.jar
2. Build
# Spring Boot 빌드
./gradlew build -x test
3. 이미지 생성
# gradle linux/amd64 옵션은 맥북 M1을 위한 옵션
$ docker build --build-arg DEPENDENCY=build/dependency -t 도커허브 ID/Repository --platform linux/amd64 .
# maven
$ docker build -t 도커허브 ID/Repository --platform linux/amd64 .
# 확인
$ docker images
Spring Boot 2.3.x 버전 이상인 경우 Dockerfile 작성 없이 Plugin으로 이미지 생성이 가능하다.
# yml, properties를 여러개 사용하는 경우 profile을 지정하여 image를 생성한다.
$ ./gradlew bootBuildImage --imageName=ID/Repository
4. Docker 업로드
# 로그인
$ docker login
# 업로드
$ docker push ID/Repository
배포 팁
환경변수중에 SPRING_PROFILES_ACTIVE=prod 를 지정하면 자동으로 application-prod.properties 파일을 바라봅니다.
개발할 땐 application.properties 설정을 바라보고 docker로 운영 서버에 배포할 땐 -e SPRING_PROFILES_ACTIVE=prod 만 추가하면 됩니다.
728x90
반응형