Docker

[Docker] Docker 배포_Spring Boot 프로젝트 (코딩온)

효진인데요 2024. 1. 2. 17:49

 

 

 

 

 

저번 React 프로젝트 Docker 배포 실습을 해보았는데,

이번에는 Spring Boot 프로젝트를 배포하는 실습을 진행했다.

 

 

 

 

1. Spring Boot 프로젝트 생성 및 실행

 

 

 

아래 사이트에서 Spring Boot 프로젝트에 대한 기본적인 세팅들을 쉽게 설정할 수 있다.

 

https://start.spring.io/

 

 

 

이렇게 설정한 뒤 하단의 Generate를 누르면 프로젝트가 다운받아진다.

 

 

 

압축을 풀어 IntelliJ에서 해당 프로젝트를 연 뒤,

메인 파일을 실행시켜 localhost:8080에 접속이 되는지 확인해 본다.

 

 

이런 페이지가 뜨면 성공이다.

 

 

 

 

2. JAR 파일 생성

 

Spring Boot 프로젝트를 배포하기 위해서는 JAR 파일이 필요하다.

JAR 파일?
  • 자바 애플리케이션을 실행하기 위해 하나의 파일로 압축한 파일 형식
  • 배포용 소프트웨어 패키지 파일 포맷
  • 자바 코드의 편리한 컨테이너 역할
  • zip과 동일한 방식으로 압축
  • 단일 파일에 코드를 저장
  • 확장자 : .jar

 

 

JAR 파일 생성 방법

 

bootJar 명령어를 실행하여 생성할 수 있다.

 

bootJar ?
  • Spring Boot 프로젝트를 빌드하여 jar 파일을 생성
  • 프로젝트에서 사용되는 모든 의존성을 포함하여 jar 파일을 생성
  • bootJar을 이용하여 쉽게 프로젝트를 배포할 수 있음

 

 

 

IntelliJ에서 우측의 Gradle 탭을 열어,

프로젝트 > Tasks > build > bootJar을 클릭해 실행한다.

 

 

 

이런 식으로 터미널에서 bootJar 명령어를 실행한 것을 볼 수 있다.

 

 

jar 파일은 프로젝트 > build > libs 안에 생성된다.

 

 

 

 

3. Dockerfile 생성

 

프로젝트의 루트 디렉토리에 Dockerfile을 생성한다.

 

 

루트 디렉토리가 헷갈린다면 프로젝트를 우클릭 한 뒤 New 탭 안의 Dockerfile을 클릭해도 된다.

 

 

Dockerfile을 아래 코드와 같이 작성하고,

 

 

파일이 올바른 위치에 있는지, 작성은 잘했는지 검토한다.

 

FROM openjdk:17
ARG JAR_FILE=build/libs/\*-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

FROM openjdk:17 FROM 명령어로 자바 실행 이미지를 지정
ARG JAR_FILE=build/libs/\*-SNAPSHOT.jar ARG 명렁어로 JAR_FILE 환경 변수 정의
COPY ${JAR_FILE} app.jar COPY 명령어로 JAR_FILE에 지정된 파일을 컨테이너로 복사
ENTRYPOINT ["java","-jar","/app.jar"] 컨테이너가 시작되면 jar 파일 실행

 

 

 

 

 docker build -t my-spring-boot-app .  명령어로 이미지를 빌드,

 docker run --name spring-boot-project -p 8080:8080 -d my-spring-boot-app  명령어로 컨테이너를 실행하면

Docker Desktop > Images

 

 

Docker Desktop > Container

 

 

완성이다.

 

 

 

 

 

 

설정한 8080 포트로 접속했을 때

http://localhost:8080/

이렇게 화면이 보이면 배포가 된 것이다.

 

 

 

 

728x90