DevOps/Docker

스프링부트를 도커 컨테이너로 실행해보기

kimc 2023. 10. 18. 21:49
반응형

```

스프링부트를 도커 컨테이너로 실행해 보기

```

이번 글을 통해 배워갈 내용

  1. 도커 설치
  2. 인텔리제이기반 스프링부트 세팅
  3. 스프링 부트 이미지 생성
  4. 스프링 부트 이미지 실행

1. 도커 설치

먼저 도커가 설치되어있지 않다면

아래 링크를 방문해서 설치합니다

(윈도우, 맥 모두)

https://docs.docker.com/engine/install/

 

Install Docker Engine

Choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.

docs.docker.com

리눅스의 경우 아래 글을 참조해 주시면 됩니다

https://codemasterkimc.tistory.com/674

 

우분투에 도커 설치하는 두가지 방법

``` 우분투에 도커 설치하는 두 가지 방법 ``` 이번 글을 통해 배워갈 내용 도커 설치 방법 1 도커 설치 방법 2 Glossary 도커 설치 방법 1 방법1은 간단한 방법으로 Production에는 권장은 되지 않습니다

codemasterkimc.tistory.com


2. 스프링 부트 세팅

 

스프링 부트 프로젝트 생성 후에

 

2-1. JAR 파일을 만듭니다
maven

 ./mvnw install


gradle

./gradlew build

 

2-2.
Dockerfile을 프로젝트 최상단에 만듭니다

Dockerfile

FROM eclipse-temurin:17-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

2-3.
maven

docker build --build-arg JAR_FILE=target/*.jar -t kimcapp .


gradle

docker build --build-arg JAR_FILE=build/libs/*.jar -t kimcapp .

 

2-4

생성된 이미지를 실행합니다

docker run -p 8080:8080 kimcapp

 

실행되는것을 확인합니다

 

 

아래와 같은 에러 발생 시
no main manifest attribute, in /app.jar

build.gradle에 jar enabled false 추가합니다

jar {
    enabled = false
}

 

 

 


 

읽어주셔서 감사합니다

 

도커 이미지를 최적화하는 방법과

JVM 환경 대신

Graalvm을 Docker 이미지로 만드는 법은

추후 알아보겠습니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

참조 및 인용

https://docs.docker.com/engine/install/ubuntu/#prerequisites

 

Install Docker Engine on Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install.

docs.docker.com


 

반응형