Docker画像は、MavenのDockerプラグインを介して構築できます
クイックスタート
pom.xmlにDockerプラグインを追加します
<プラグイン> <groupId> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <bersion> 0.4.13 </version> <configuration> <configuration> <imagename> linyuantongue> linyuantongue> linyuantongue> docker-demo:0.0.1 </imageName> Docker-Demoは画像名(DockerHubリポジトリ名に対応)、0.0.1はラベル名(バージョン番号に相当)<SaberImage> Java </baseImage> //ディレクティブ<エントリポイント> ["java"、 " - jar"、 "app.jar"] <リソース> <TargetPath>/</targetPath> <directory> $ {project.build.directory} </directory> //コピーするルートディレクトリを指定します、$ {project.build.directory}は、ターゲットディレクトリを意味します<compret.build.finalname}。 $ {project.build.finalname} .jarは、パッケージJARファイルを指します</resource> </configuration> </plugin>次のコマンドを実行して、Docker画像を作成します
MVNクリーンパッケージDocker:ビルド
Docker画像を実行して、作成したばかりの画像を表示します
dockerfileファイルを読んでください
dockerfileファイルを読むときに、ベースイメージとエントリポイントを指定する必要はありません
<Plugin> <groupId> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <version> 0.4.13 </version> <configuration> <configuration> <dockerdirectory> $ {project.basedir}/src/main/docker> <mageName> linyuantongxue/docker-demo:0.0.1 </imagename> //画像名を指定します。linyuantongueはリポジトリ名(dockerhubユーザー名に対応)、docker-demoは画像名です(dockerhubリポジトリに対応)、0.0.1はタグです> <directory> $ {project.build.directory} </directory> //ルートディレクトリをコピーするルートディレクトリを指定します、$ {project.build.directory}はターゲットディレクトリを意味します<compret.build.finalname} .jar </inctrue> // $ {proct.burernameのファイルを指定します。 JARファイル</resource> </resource> </configuration> </plugin>プラグインをフェーズにバインドして実行します
多くのシナリオにはそのようなニーズがあります。たとえば、プラグインがMVNクリーンパッケージを実行すると、プラグインがDocker画像を自動的に構築します。これを達成するには、プラグインの目標を特定のフェーズにバインドするだけです。
Mavenコマンド形式は次のとおりです。MVNフェーズ:目標。フェーズは、ターゲットの構造ライフサイクルフェーズと目標構成の実行ターゲットにバインドします
次の構成を追加するだけです。
<プラグイン> <groupId> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <version> 0.4.13 </version> //メイブンライフサイクルパッケージでビルドターゲットを実行<実行> <実行> <id> build-image </id> <phase> </exeg> <quard <quard> quard> quard> quard> quard> exect </exeg> </実行> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$」 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$」 <mageName> linyuantongxue/docker-demo:0.0.1 </imagename> <baseimage> java </baseimage> <entrypoint> ["java"、 "-jar"、 "app.jar"] </entrypoint> <リソース> <リソース> <リソース> <リソース> <ターゲットパス> <cludent> $ {project.build.finalname} .jar </include> </resource> </resources> </configuration> </plugin>ミラーを押します
Mavenプラグインを使用して、Dockerハブに画像をプッシュする
Maven Global Configuration Information File settings.xmlを変更し、Dockerハブユーザー情報を構成します
<サーバー> <server> <id> docker-hub </id>#dockerhubこのウェブサイトのユーザー名は、すべて小文字でなければなりません<username> linyuantongxue </username> 765371578ly </password> <configuration> <email> [email protected] </email>
POMファイルを変更します
<Plugin> <groupId> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <version> 0.4.13 </version> <configuration> <imagename> linyuantongue> linyuantongue/linyuantongue:linyuantongue/linyuant-demo:0.0.1 </imagename> <basimage> java </baseimage> <EntryPoint> ["Java"、 "-jar"、 "app.jar"] </entrypoint> <resources> <resource> <targetpath>/</targetpath> <directory> $ {project.build.directory} </directory> <conter> $ {project.build.finalname} .jar < setting.xml、画像をプッシュするために使用 - > <serverId> docker-hub </serverId> </configuration> </plugin>次のコマンドを実行して、プッシュイメージ識別子を追加してプッシュイメージを示します
MVNクリーンパッケージDocker:Build -DPushimage
上記の例では、イメージネームを使用して画像名とラベルを指定でき、イメージタグ要素を使用して画像名を指定し、ラベルを柔軟にして、同じ画像に対して2つのラベルを指定できるようにします。
<configuration> <mageName> linyuantongxue/docker-demo </imagename> <imagetags> <mageTag> 0.0.1 </imagetag> <imagetag>最新</imageTag> </imageTags> </configuration>
コマンドを構築するときにDockerImagetagsパラメーターを使用してタグ名を指定することもできます
コードコピーは次のとおりです。
MVNクリーンパッケージ:build -dpushimagetags -ddockerimagetags =最新の-ddockerimagetags = Another -Tag
同じタグ名で画像を繰り返し作成する必要がある場合は、forcetagsをtrueに設定します
<Configuration> // ...... <Forcetags> true </forcetags> </configuration>
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。