주요 콘텐츠로 건너뛰기

CooLWJ 검색

选择搜索范围,输入关键词后按回车。

언어

SpringBoot로 Docker 이미지를 빌드하는 가장 좋은 3가지 방법

이 글에서는 Maven을 통해 SpringBoot 애플리케이션을 Docker 이미지로 빌드하는 3가지 기술을 소개한다.

(1)spring-boot-maven-plugin에 내장된 build-image.

(2)Google의 jib-maven-plugin。

(3)사용 dockerfle-maven-plugin。

Spring Boot 애플리케이션

편리하게 실습하려면 Spring Boot 프로젝트가 필요하다.

Demo 프로젝트 주소:

https://github.com/davelms/me...

프로젝트 환경:

  • Java 11

  • Maven 3.6.3

사용 mvn package jar 패키지를 정상적으로 빌드할 수 있다.

정상적으로 실행할 수도 있습니다:

java -jar target/demo-application-0.0.1-SNAPSHOT.jar

테스트 페이지:

http://localhost:8080/hello

Demo 프로젝트가 준비되었으니, 이제 이미지를 빌드하는 3가지 방법을 실습해 보자.

일、Spring Boot maven 플러그인의 build-image

Spring Boot에는 Docker 이미지를 빌드하는 자체 플러그인이 기본으로 포함되어 있다. pom.xml의 spring-boot-starter-parent에 이미 들어 있으므로 별도로 변경할 필요가 없다.

Dockerfile을 작성할 필요도, 다른 일을 신경 쓸 필요도 없다. Spring이 권장하는 보안, 메모리, 성능 관련 사항 등을 플러그인이 모두 처리해 준다.

다음을 간단히 실행하기만 하면 된다:

mvn spring-boot:build-image

실행이 완료되면 성공 안내 메시지가 표시됩니다:

컨테이너 실행 테스트:

docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT

주의: 여기서 매핑되는 로컬 포트는 9090。

둘째、jib-maven-plugin

Jib는 Docker 이미지를 만드는 Maven 및 Gradle 플러그인이다.

이 플러그인에는 아주 뚜렷한 특징이 하나 있습니다:로컬에 Docker를 설치할 필요 없음,이는 지속적 통합에 매우 편리하며, Jib는 지정한 Docker 레지스트리에 직접 푸시할 수 있다.

Jib 역시 Dockerfile을 작성할 필요가 없다.

사용하기도 매우 편리하며, 코드를 수정할 필요가 없고 pom.xml도 변경하지 않아도 된다.

다음만 실행하면 됩니다:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
  • mvn compile

우리에게 매우 익숙한 maven 컴파일 명령어이다.

  • com.google.cloud.tools:jib-maven-plugin:2.3.0

Jib 플러그인 사용을 지정했다

  • dockerBuild

는 Jib 플러그인의 실행 목표이며,dockerBuild Jib가 로컬에 설치된 Docker를 사용하도록 지정했다。

실행이 완료되면 성공 안내 메시지가 표시됩니다:

컨테이너를 시작하여 테스트:

docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT

주의: 여기서 매핑되는 로컬 포트는 9091。

삼、dockerfile-maven-plugin

이 플러그인을 사용하려면 Dockerfile을 작성해야 하는데, Domo 프로젝트에는 이미 준비되어 있습니다.

Dockerfile은 프로젝트의 루트 디렉터리에 pom.xml과 함께 두어야 합니다.

그런 다음 pom.xml에 설정을 추가하여 저장소, tag 태그, 그리고 위 Dockerfile에서 정의한 JAR_FILE。

실행 mvn package 때 이미지가 자동으로 빌드되며, 실행이 끝나면 다음 안내 메시지가 표시된다:

image

컨테이너 실행:

docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT

주의: 매핑된 로컬 포트는 9092。

소결

이 3가지 중 가장 편리한 것은 SpringBoot 기본 방식으로,직접 할 일이 전혀 없고 바로 사용할 수 있다。

가장 특징적인 것은 Jib이다. 로컬에 Docker를 설치할 필요 없이 지정된 저장소로 직접 푸시할 수 있으며, 사용법도 매우 간단하다.

가장 번거로워 보이는 것은 dockerfile-maven-plugin 플러그인이다. Dockerfile도 작성해야 하고 설정도 추가해야 한다,하지만,실제로 이것이 가장 사용하기 편하다. 앞의 2개는 네트워크 환경과 관련이 있어(무슨 말인지 알 것이다), Docker 미러를 설정해도 오류가 발생하니 직접 시험해 볼 수 있다.

Spring Boot、Maven 및 Docker 이미지 빌드 주제 이미지


댓글

보내는 중

원하는 테마를 선택하세요

선택한 테마가 사이트 전체에 적용됩니다.