안녕하세요! 이번 포스팅에서는 스프링 부트 프로젝트를 Docker 이미지로 만들고 이를 실행시키는 내용을 작성해보겠습니다.
도커 관련해서 글을 쓴 것은 이번이 처음이고 부족한 부분이 많습니다.. 잘못된 점이나 더 알면 좋은 정보가 있다면 알려주세요 ㅠㅠ
저는 야구를 좋아하는데 이번에 재미삼아서 기아타이거즈 정보 전달 레터 서비스를 만들고 있는 중입니다. (진짜 정보 레터가 전달될지는 몰라여.. ㅋㅋㅋㅋ)
기술 스택 : kotlin, spring boot, jpa, h2
간단하게 기능들입니다.
- 이메일 등록
- 이메일 비활성화
- 기간 별로 메일 전송 로직
이번 포스팅은 Docker 이미지 포스팅이니 프로젝트 설명은 여기까지만 하겠습니다.
우선, Docker 이미지를 만들기 위해서는 Dockerfile을 만들어야 한다고 합니다.
Docker에게 어떤걸 어떻게 이미지화 시킬지에 대한 내용이 담겨있는 파일입니다.
저의 Dockerfile 내용입니다
# Base image 선택 (Java 21)
FROM openjdk:21-jdk
# 작업 디렉토리 설정
WORKDIR /app
# 빌드된 JAR 파일을 Docker 이미지에 추가
COPY build/libs/*.jar app.jar
# 애플리케이션을 실행하기 위한 명령어 설정
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
여기에서 제가 중요하게 생각하는 부분은 from 다음과 copy부분입니다.
저는 java21을 이용하고 있어서 From 다음에는 openjdk 21을 넣었습니다.
그리고 스프링 부트 파일을 빌드하니 build/libs/tigers-news-0.0.1-SNAPSHOT.jar 형태로 jar 파일이 만들어지더군요!
따라서 COPY 명령어 다음에 저의 jar파일이 있는 경로를 넣어줬습니다.
추가로 WORKDIR은 도커 컨테이너 내부에서 만들어지는 디렉토리라고 합니다.
이제 이 Dockerfile을 실행시켜서 이미지를 만들어 보겠습니다.
docker build -t tigers-letter-app .
위의 명령어로 tigers-letter-app이라는 이미지를 만들어 냈습니다.
도커 이미지가 잘 실행된것을 볼 수 있습니다.
이제 이 이미지를 실행시켜 보겠습니다.
스프링이 잘 올려가지는 것을 확인했습니다.
이제 실제 url로 접근해보겠습니다.
위의 docker 실행 명령어를 보시면 외부 포트는 8088을 사용하도록 했습니다.
조잡한 저의 이메일 등록화면이 잘 뜨네요 ㅎㅎ
이상입니다~
댓글