Docker

[DOCKER] Spring Boot .war파일 Docker Build 방법 #DokerFile

TaeHuiLee 2022. 12. 23. 09:00
반응형

도커의 편리함이라면 개발자 누구나 알 것이다.

이번에는 String boot.war파일을 도커 이미지화 시킨 후 서버에 띄우는 방법을 설명하겠다.

 

boot.war파일 Docker Build 하는법

Docker Build를 하기 위해서는 3가지가 필요하다. 

  • openjdk 이미지
  • Dockerfile
  • boot.war 

- spring boot로 개발한 파일을 maven build를 진행하여 .war파일을 생성 해 준다. (maven build하는법은 많이 나와있으니 따로 설명하지 않도록 하겠다)

- Dockerfile과 boot.war를 같은 폴더에 넣고 Dockerfile을 이용해 이미지를 생성한다. Dockerfile에 대한 내용은 아래를 참고하자

 

Dockerfile

- war파일을 Run 하기 위해 openjdk를 base image로 지정한다.

- 로그를 위한 폴더와 war파일을 넣어줄 폴더를 생성한다.

- war파일을 이미지 내부로 옮긴다.

- 기본 폴더를 /data2/potal/web으로 지정한 뒤

- 이미지가 Build 된 후 컨테이너 내부에서 실행되는 명령어를  ENTRYPOINT에 적어준다.

FROM openjdk:11-jdk

RUN mkdir -p /data2/potal/web
RUN mkdir -p /data2/potal/logs

ADD boot.war  /data2/potal/web/boot.war

WORKDIR /data2/potal/web

ENTRYPOINT java -Dspring.proriles.active=loc -jar boot.war

 

- Dockerfile과 boot.war파일이 있는 폴더로 이동하여 build를 한다.

docker build -t boot-image

 

 

- 이후 이미지를 확인해 보면 boot-image라는 이미지가 생성되어 있을것이다.

 

 

- 이미지를 가지고 원하는 포트와 볼륨을 지정해서 run 해주면 된다.

- --rm(Container stop시 삭제하도록 설정), -d(백그라운드 실행), -p(포트 설정- 호스트 외부포트:컨테이너 내부포트) -v(볼륨 마운드 호스트 저장소:컨테이너 저장소)

docker run --rm -d -p 8080:8080 -v app/potal:data2/potal boot-image

반응형