2017-12-25 4 views
0

설정하는 동안 mock 플러그인 (fabric8)이 컨테이너의 도커 이미지를 작성해야하는데 도커 컨테이너를 통해 스프링 부트 응용 프로그램을 제공하고 싶습니다. 받는다는 이미지 구축 할 필요가 왜maven을 사용하지 않고 내 스프링 부팅 응용 프로그램을 Dockerize하여 이미지를 빌드하십시오.

  • 내 스프링 부팅 응용 프로그램을 dockerize 할 수있는 가장 좋은 방법이 있나요 (공식 문서 부팅도 봄. https://spring.io/guides/gs/spring-boot-docker/ 이렇게 제안), 이해? , 이것 좀 도와주세요 미리 감사
+1

필요한 것은 항아리뿐입니다. 항아리 이미지를 항아리 이미지로 복사하고 Java 프로세스로 실행하면됩니다. 왜? 스프링 부트 응용 프로그램을 병으로 어떻게 패키지합니까? 그럼 당신은 항아리로 응용 프로그램을 패키지로 봄 부팅 maven/gradle 플러그인을 사용합니다. – Barath

+0

@Barath, mock/gradle plugin을 사용하여 빌드해야하는 고정 이미지를 빌드! –

+1

그게 전부입니다. 그것은 도커 이미지를 만드는 한 방법입니다.다른 하나는 docker 빌드 명령을 사용하여 docker 이미지를 작성하는 것입니다. 도커 이미지를 작성하는 두 가지 방법 중 하나는 docker 명령을 사용하거나 플러그인을 사용하는 것입니다. – Barath

답변

2

하는 플러그인 dockerfile 받는다는 추가 메이븐으로 고정 표시기의 이미지를

1. 빌드 도커 이미지를 구축하는 방법에는 두 가지가 있습니다

<plugins> 
     <plugin> 
      <groupId>com.spotify</groupId> 
      <artifactId>dockerfile-maven-plugin</artifactId> 
      <version>1.3.6</version> 
      <configuration> 
       <repository>${docker.image.prefix}/${project.artifactId}</repository> 
    <buildArgs> 
     <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> 
    </buildArgs> 
      </configuration> 
     </plugin> 
    </plugins> 

명령 줄을 사용하여 도커 이미지 빌드

./mvnw install dockerfile:build 

2. 빌드 도커 명령을

  • 실행 받는다는 명령

    청소 ./mvnw Dockerfile을 포함하는 프로젝트 디렉토리에

    • CD를 사용하여 도커 이미지 설치

    • 도커 빌드 명령 실행

      도커 빌드. 봄 부팅 자체가 런타임 프레임 워크이기 때문에

      고정 표시기 빌드 -f/경로 /로가/Dockerfile

  • 0

    도커 이미지는 실행하는 방법을 JVM에 알려줍니다, 봄 부팅이 제공 할 수없는 뭔가가 당신의 암호. 대신, Docker는 JVM 자체를 제공하고 실행하는 방법에 관한 것입니다. 따라서 스프링 부트는 런타임 프레임 워크이며 Docker 이미지는 런타임에 수행하는 작업이 아닙니다. 아티팩트 (및 스프링 부트)가 아직 실행되지 않는 빌드 타임에만 Docker 이미지를 빌드 할 수 있습니다.

    Maven은 빌드 도구이므로 Maven이 빌드를 수행 할 때 전체 빌드 프로세스에서 Docker 이미지를 빌드 할 수 있습니다. 이것은 Maven뿐만 아니라 Docker 플러그인이있는 빌드 도구를 사용하여 수행 할 수 있습니다. Maven은 인기있는 빌드 도구이므로 다른 프레임 워크 매뉴얼에서 자주 사용되지만 실제로 Maven, Spring Boot 및 Docker 간에는 종속성이 없습니다. Maven은 스프링 부트 애플리케이션을 빌드하고 Docker 이미지를 빌드하는 데 필요한 모든 도구를 제공합니다.

    앱을 도킹 해제하려면 Maven이 필요하지 않지만 애플리케이션 용 스크립트를 빌드하기 위해 Docker 이미지를 빌드해야합니다.

    관련 문제