1.依存関係を追加する
dockerfile-maven-pluginコンポーネントを導入する
<build>
<plugins>
<plugin>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-maven-plugin </ artifactId>
</ plugin>
<plugin>
<groupId> com.spotify </
groupId > <artifactId> dockerfile-maven-plugin </ artifactId>
<version> 1.4.13 </ version>
<executions>
<execution>
<id> デフォルト </ id>
<goals>
<goal>ビルド</ goal> ビルド</ goal>
<goal>プッシュ</ goal>
</ goals>
</ execution>
</ executions>
<configuration>
<repository> $ {docker.image.prefix} / $ {project.artifactId} </ repository>
<tag> $ {project.version} </ tag>
<buildArgs>
< JAR_FILE> $ {project.build.finalName} .jar </ JAR_FILE>
</ buildArgs>
</ configuration>
</ plugin>
</ plugins>
</ build>
2. Dockerfileファイルを追加します
Dockerfileとpom.xmlは同じレベルのディレクトリにあります
FROM java:8 EXPOSE 8080 ARG JAR_FILE ADD target / $ {JAR_FILE} /demo-0.0 .jar ENTRYPOINT [ "java"、 "-jar"、 "/ demo-0.0.jar"]
3.パック
> MVNのパッケージ - DskipTests [INFO]スキャンのためのプロジェクト... [INFO] [INFO] -------------------------- <com.example :demo> -------------------------- [INFO] Building demo 1.0 [INFO] ------------ -------------------- [jar] --------------------------- ------ [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources(default -resources)@ demo --- [INFO] 'UTF-8' エンコーディングを使用してフィルタリングされたリソースをコピーする。 [INFO] 1つのリソースをコピーしています [INFO] 7つのリソースをコピーしています [INFO] [INFO]--- maven-compiler-plugin:3.8.1:compile(default -compile)@ demo --- [INFO]変更が検出されました -モジュールを再コンパイルしています! [INFO] 14個のソースファイルをE:\ java \ demo \ target \ classesにコンパイルします [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources(default -testResources)@ demo --- [INFO ] 'UTF-8' エンコーディングを使用して、フィルタリングされたリソースをコピーします。 [INFO]存在しないresourceDirectoryをスキップE:\ java \ demo \ src \ test \ resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile(default -testCompile)@ demo --- [情報]変更が検出されました-モジュールを再コンパイルします! [INFO] 1つのソースファイルをE:\ java \ demo \ target \ test- classesにコンパイルします [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test(デフォルト -test )@デモ--- [情報]テストはスキップされます。 [情報] [情報] --- maven-jar-plugin:3.1.2:jar(デフォルト -jar)@デモ--- [情報]ビルドjar:E:\ java \ demo \ target \ demo -1.0 .jar [INFO] [INFO] --- spring-boot-maven-plugin:2.2.5.RELEASE:repackage(repackage)@ demo --- [INFO]メインアーティファクトを再パッケージ化されたアーカイブで置き換える [INFO] [INFO] --- dockerfile-maven-plugin:1.4.13:build(デフォルト)@デモ--- [INFO] dockerfile:null [INFO] contextDirectory:E:\ java \ demo [INFO] Dockerコンテキストの構築E:\ java \ demo [INFO] Path(dockerfile):null [INFO] Path( contextDirectory):E:\ java \ demo [INFO] [INFO]イメージは、springdemo /demo:1.0 [INFO] [INFO] として構築されます。ステップ 1/5:FROM java:8 [INFO] [INFO]ライブラリからプルする/ java [情報]ダイジェスト:sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d [情報]ステータス: java:8の画像が最新です [情報] ---> d23bdf5b1b1b [情報]ステップ2/5:EXPOSE 8080 [情報] [情報] ---> キャッシュ [情報] を使用 ---> 8b6cab01e7f6 [情報]ステップ 3/5 :ARG JAR_FILE [情報] [情報] ---> キャッシュ [情報] を使用] ---> 7ba55f2e8bba [INFO]ステップ 4/5:target / $ {JAR_FILE} /demo-0.0 .jar [INFO] [INFO] ---> 7263886dec7b [INFO]ステップ 5/5:ENTRYPOINT ["java "、" -jar "、" / demo-0.0.jar " ] [情報] [情報] ---> 12b670b157c4で実行中 [情報]中間コンテナ12b670b157c4を削除しています [情報] ---> 172f4efb3acd [情報] 172f4efb3acdが正常に構築されました [情報]正常にタグ付けされたspringdemo /demo:1.0 [情報] [情報] ID 172f4efb3acdのイメージの構築が検出されました [情報]ビルドjar:E:\ java \ demo \ target \デモ -1.0-docker- info.jar [INFO]正常にビルドspringdemoの /demo:1.0 [INFO] --------------------------- --------------------------------------------- [INFO]ビルド成功 [情報] ----------------------------------------------- ------------------------- [情報]合計時間: 01 : 18 分 [情報]終了: 2020-04-16T09:04:50 +08:00 [情報]-------------------------------------------------- ----------------------
説明:
コマンドが実行された後、画像ファイルはサーバー上にあります
java:8はミラー依存のレイヤーであり、存在しない場合、mvn dockerfile:ビルドコマンドが実行されるとプルダウンされます
4.デプロイ
Dockerサーバーにログインします。
sudo dockerイメージ
実行中
docker run --name springdemo -p 8080:8080 -d springdemo / demo:1.0
注:
バージョン番号は最後ではなく、バージョン番号を指定する必要があります
テスト中
GET http://192.168.99.100:8080/hello
戻る
"こんにちは世界"