Springboot 프로젝트 docker 이미지로 build 하기

개발자·2022년 9월 6일
0

MSA

목록 보기
5/7
post-custom-banner

Springboot 프로젝트를 받아 docker 이미지로 build해 실행하는 과정을 정리해보았다. 🐶

소스코드 컴파일

svn이나 git에 올려둔 프로젝트 파일을 받는다.
나는 svn을 사용중이므로 다음 명령어를 통해 다운 받았다.
co는 check out을 의미한다.

$ svn co <Repository주소>

다운로드 받은 폴더에서 mvnx 파일이 있는 내부로 들어간다.

mvnx 파일이 있는 위치에서 아래 명령을 입력하면 target 폴더에 소스 코드를 컴파일하고 패키지가 배포된다.

$ sh ./mvnw package

target 폴더로 이동(cd target)해보면 jar파일이 생긴 것을 확인할 수 있다.


Docker 이미지 build

jar 파일이 있는 위치에서 vi Dockerfile을 입력해 Dockerfile을 작성한다.

FROM amazoncorretto:8u352-alpine3.16

#JAR_FILE 변수 선언
ARG JAR_FILE=<jar파일명>.jar

COPY ${JAR_FILE} <복사할이름>.jar

#profile.active=dev는 생략 가능
ENTRYPOINT ["java","-jar", "-Dspring.profiles.active=dev", "/<복사할이름>.jar"]

#컨테이너가 사용할 port 지정 -> 외부에서 접속 가능하게 해줌
EXPOSE <port number>

<jar파일명>은 위에서 생성된 jar 파일명, <복사할이름>은 원하는 것을 입력해주면 된다.

아래 명령으로 docker 이미지를 build 한다.

$ docker build -t <docker ID>/<tag명> .

=> docker ID를 입력해줘야 나중에 docker hub에 이미지를 push 할 수 있다.

docker images로 이미지 목록을 확인해보면 build한 이미지가 추가된 것을 확인할 수 있다!


이미지 실행

이제 이미지를 실행해보자!

다음 명령으로 이미지를 실행한다.
-p로 포트를 바인딩 해줄 수 있다.(-p Host port:Container port)

$ docker run -p 8761:8761 <docker REPOSITORY명>

ip:port에 접속해 이미지가 실행된 것을 확인할 수 있다.
나는 Eureka Server를 올렸기 때문에 Eureka가 실행된 모습을 볼 수 있었다.


+추가) docker 이미지 삭제하기

아래 두 명령어 모두 docker 이미지를 삭제할 수 있다.

$ docker rmi <REPOSITORY명>:<TAG명>
$ docker rmi <IMAGE ID>


Ref.

https://velog.io/@dhk22/Docker-spring-boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%8F%84%EC%BB%A4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A1%9C-%EB%B9%8C%EB%93%9C
https://www.lainyzine.com/ko/article/docker-rmi-removing-docker-images/

profile
log.info("공부 기록 블로9")
post-custom-banner

0개의 댓글