Docker 이미지는 Maven의 Docker 플러그인을 통해 구축 할 수 있습니다
빠른 시작
pom.xml에 docker 플러그인을 추가하십시오
<flugin> <groupid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <버전> 0.4.13 </version> <imagename> linyuantongxue/docker-demo : 0.0.1 </imageName> // LinyUantxue는 (해당하는), reporter wornow hoorhh hoorh hoorhh hoorhh hoorhh hoper hoporhh. Docker-Demo는 이미지 이름 (DockerHub 리포지토리 이름에 해당)이며 0.0.1은 레이블 이름 (버전 번호와 동일) <BaseImage> java </baseImage> // 기본 이미지를 지정하고 Directive <EntryPoint>에서 동등한 기본 이미지를 지정합니다. <gargetPath>/</targetpath> <directory> $ {project.build.directory} </directory> // 복사 할 루트 디렉토리를 지정합니다. $ {project.build.directory}는 대상 디렉토리 <$ {project.build.finalname}을 의미합니다. $ {project.build.finalname} .jar는 포장 된 JAR 파일을 나타냅니다 Docker 이미지를 작성하려면 다음 명령을 실행하십시오
MVN Clean Package Docker : 빌드
방금 구축 한 이미지를보기 위해 Docker 이미지를 실행하십시오.
dockerfile 파일을 읽으십시오
DockerFile 파일을 읽을 때 BaseImage 및 EntryPoint를 지정할 필요가 없습니다.
<flugin> <groupid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <버전> 0.4.13 </version> <configuration> <dockerdirectory> $ {project.basedir}/src/main/docker </dockerdirectory> // dockerfile 파일을 지정합니다. <ImageName> linyuantongxue/docker-demo : 0.0.1 </imageName> // 이미지 이름을 지정하고, linyuantongxue는 리포지토리 이름 (dockerhub username에 해당), docker-demo는 이미지 이름입니다 (DockerHub 리포지토리에 해당), 0.0.1은 태그 이름입니다. <Directory> $ {project.build.directory} </directory> // 복사 할 루트 디렉토리를 지정하여 $ {project.build.directory}를 의미합니다. 대상 디렉토리 <colotary> $ {project.build.finalname} .jar </inclo료>/include, project. jar re in thanname}. 파일 </resource> </resources> </configuration> </plugin>플러그인을 단계에 바인딩 할 수 있습니다
많은 시나리오에는 그러한 요구가 있습니다. 예를 들어, 플러그인이 MVN Clean 패키지를 실행하면 플러그인이 자동으로 Docker 이미지를 빌드합니다. 이를 달성하려면 플러그인의 목표를 특정 단계에만 바인딩하면됩니다.
Maven 명령 형식은 다음과 같습니다. MVN Phase : Goal. 위상은 대상의 구성 수명주기 단계와 목표 구성의 실행 대상을 바인딩합니다.
다음 구성 만 추가하십시오.
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> // Execute build target in maven lifecycle package<executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </execution> </실행> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 서비스 것이라고 생각합니다 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 서비스 생각이 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$는지 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 서비스 것이라고 생각합니다 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 서비스 생각이 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$는지 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. <ImageName> linyuantongxue/docker-demo : 0.0.1 </imageName> <Sava </baseimage> <entyPoint> [ "java", "-jar", "app.jar"</entherpoint> <resource> <pargetPath>/</targetPath> <directory> $ {project.Build.directory} <clude> $ {project.build.finalname} .jar </include> </resource> </resources> </configuration> </plugin>미러를 푸시하십시오
Maven 플러그인을 사용하여 이미지를 Docker Hub로 푸시하십시오.
Maven Global 구성 정보 파일 Settings.xml을 수정하고 Docker Hub 사용자 정보 구성
<서버> <server> <id> docker-hub </id> # dockerhub이 웹 사이트의 사용자 이름은 모두 올바른 소문자 여야합니다 <username> linyuantongxue </username> <passw색오> 765371578ly </password> <configuration> <email> [email protected] </configuration> </configurate> </configurate>
POM 파일을 수정하십시오
<Plugin> <groupId> com.spotify </groupId> <artifactid> docker-maven-plugin </artifactid> <버전> 0.4.13 </version> <imagename> linyuantongxue/docker-demo : 0.0.1 </imagename> <aseimage> java </baseimage> <ETTICTPOINT> [ "java", "-jar", "app.jar"] </enterdpoint> <presuss> <partherpath>/</targetpath> <directory> $ {project.build.directory} </drierctory> <clude> $ {project.build.finalname} .jar </resources> <! in in server. setting.xml, 이미지를 푸시하는 데 사용됩니다-> <serverid> docker-hub </serverid> </configuration> </plugin>다음 명령을 실행하여 푸시 이미지 식별자를 추가하여 푸시 이미지를 나타냅니다.
MVN Clean Package Docker : 빌드 -dpushimage
위의 예에서는 이미지 이름을 사용하여 이미지 이름과 레이블을 지정할 수 있으며 ImageTags 요소는 이미지 이름을 지정하고 더 유연하게 레이블을 지정하여 동일한 이미지에 대해 두 개의 레이블을 지정할 수 있습니다.
<configuration> <ImageName> linyuantongxue/docker-demo </imageName> <imageTags> <imageTag> 0.0.1 </imageTag> <ImageTag> 최신 </imageTag> </imageTags> </configuration>
DockerImagetags 매개 변수를 사용하여 명령을 작성할 때 태그 이름을 지정할 수도 있습니다.
코드 사본은 다음과 같습니다.
MVN Clean 패키지 : 빌드 -dpushimagetags -ddockerimagetags = 최신 -ddockerimagetags = 다른 태그
동일한 태그 이름의 이미지를 반복적으로 빌드 해야하는 경우 Forcetags를 true로 설정하십시오.
<configuration> // ...... <forcetags> true </forcetags> </configuration>
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.