Spring

Docker로 Spring boot 프로젝트 배포하기

@leee 2023. 1. 13. 07:01

프로젝트를 배포하는 방식이 다양하지만 도커를 연습해보는 용으로 매우 간단하게 진행해본다.

 

1. 배포 파일(jar, war) 만들기

Intellij를 사용하는 경우, Gradle tab > Tasks > build > bootJar/bootWar로 jar/war파일을 만들 수 있다.

build 전 clean하는 것은 잊지 말자.

생성된 배포 파일은 /build/libs 폴더 안에 있다.

 

 

2. 서버에 도커 이미지 만들기

도커 이미지를 만드는 방법은

  1. 로컬에서 도커 이미지 생성 후 DockerHub에 올려서 서버에서 다운 받기
  2. Dockerfile 만들고 빌드해 이미지 생성하기

두 가지가 있는데 2번 방법으로 진행했다.

먼저 서버에 배포 파일을 올리고, 동일한 위치에 Dockerfile을 생성했다.

FROM openjdk:11
ARG JAR_FILE=./*.jar
COPY ${JAR_FILE} project-server.jar
ENTRYPOINT ["java","-jar","/project-server.jar"]

JAR_FILE에는 이미지에 들어갈 배포 파일 경로를 적어주면 되고, 만약 war 파일이라면 파일 확장자를 war로 변경하면 된다.

docker build -t [이미지명] [도커파일 경로]
docker images // 이미지 올라와있는지 확인

t 옵션은 이미지에 이름을 붙인다는 뜻

 

 

3. 도커 이미지를 기반으로 컨테이너 생성하고 실행하기

docker run -d -u root -p 8080:8080 --name [컨테이너명] [이미지명]
docker ps // 실행중인 컨테이너 확인

run 명령어는 컨테이너를 생성하고 바로 실행시킬 수 있다.

내 경우에는 로컬 포트 번호와 컨테이너 내부 포트번호를 모두 8080으로 했는데, 변경하고 싶다면 [로컬포트번호]:[컨테이너 내부 포트번호] 로 적으면 된다.