본문 바로가기
devops/Docker 강좌📌인프런

Spring Boot - Docker 예제

by IMSfromSeoul 2022. 3. 22.

📌 환경 설정

공식 문서 : ( https://spring.io/guides/gs/spring-boot-docker/ )

공식 예제 : ( https://github.com/spring-guides/gs-spring-boot-docker )

 

해당 github에서 코드를 clone한다.

complete 폴더로 이동한다.

 

./gradlew build

cd libs > build

java -jar ~.jar

📌 예제 실행

🔖 Dockerfile

FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","hello.Application"]

현재 위처럼 파일이 세팅돼있다.

위의 Spring 공식 문서를 들어가보면 3가지 버전이 명시돼있다.

위는 마지막 경우이며, jar파일을 다른 폴더로 복사해서 압축을 해제한 다음에 실행시키는 예제이다.

 

가장 간단한 방법으로 실행해보자.

 

🔖 Dockerfile

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

공식예제에서는 2번째 줄이 ARG JAR_FILE=target/*.jar 로 돼 있는데, 이는 maven 설정이라서 그렇다. build/libs로 바꿔주자. 

🔖java 11

FROM openjdk:11-jre-slim
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
CMD java -jar app.jar

 

complete 폴더로 이동후 아래 명령어 실행한다.

docker build --build-arg JAR_FILE=build/libs/\*.jar -t springio/gs-spring-boot-docker .

이미지를 만들어주었으니, 실행해 주자.

docker run -p 8080:8080 springio/gs-spring-boot-docker

 

 

 


reference

아래 유투브 영상 참조
( https://www.youtube.com/watch?v=HXgHgYRr3eY )

 

댓글