背景 開発プロセス中に Docker コンテナ化をサポートするために、通常は Maven を使用してコンパイルおよびパッケージ化し、イメージを生成します。これにより、オンライン効率が大幅に向上し、容量を迅速かつ動的に拡張したり、すばやくロールバックしたりできるため、非常に便利です。 docker-maven-plugin プラグインは、Maven プロジェクトでの簡単な構成を通じて、イメージを自動的に生成し、ウェアハウスにプッシュできるように設計されています。 スポティファイ、ファブリック8 ここで使用される2つの主なプラグインは、spotifyとfabric8です。 - XMLを介してDockerfileを構成するか、外部Dockerfileをマウントして、DockerリモートAPIを呼び出してイメージを構築します。 ピグマイクロサービスプラットフォームのすべてのコンテナ化はこの構造に基づいています <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> ... - XMLで定義されたDockerfileを構成するか、外部Dockerfileをマウントします </プラグイン> <プラグイン> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> ... - XMLで定義されたDockerfileを構成するか、外部Dockerfileをマウントします </プラグイン> 対応するプラグインサイクルを実行します mvn docker:build && mvn docker:push ジブ プロジェクトがリリースされるたびに実際に変更されるコードの量はそれほど多くなく、特に依存 jar が変更される可能性は小さいです。最初の 2 つのプラグインを使用してイメージをビルドすると、毎回完全なビルドが実行され、ストレージと帯域幅のリソースが無駄になります。 Jib は、Google が 2018 年 7 月にリリースした Java アプリケーションのイメージをビルドするためのツールです (Maven と Gradle をサポート)。ビルド キャッシュを再利用でき、ビルドの高速化、転送量の削減ができるのが利点です。 <!-- XML 経由で Dockerfile を設定します。これは基本的に外部 Dockerfile と同じです --> <プラグイン> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> </プラグイン> mvn jib:dockerビルド 上記3つの解決策の問題点 実際の開発プロセスでは、ほとんどの Spring Boot プロジェクトは同じ方法で Dockerfile を構築し、XML または外部 Dockerfile を通じて再定義する必要はありません。 上記のプラグインには Dockerfile 定義に関する比較的高度な知識が必要であり、開発者にとって使いにくいものです。 Spring Boot 2.3 以降では、Jar 階層化テクノロジを使用する理由はありません。 解決 Spring Boot 2.4 では、オリジナルの spring-boot-maven-plugin に統合された独自の docker ビルド ツールがリリースされました。イメージのビルドを完了するには、対応するターゲット ウェアハウスとホスト情報を構成するだけです。 上図は、以下の構成で完成します。開発マシンにDockerをインストールせずに、192.168.0.10のDocker Remote API経由でイメージをビルドし、192.168.0.20のイメージウェアハウスに公開します。 <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <構成> <画像> <名前>192.168.0.20/pig4cloud/${プロジェクト.artifactId}</名前> <!-- ビルド実行後に自動的にプッシュ --> <publish> 真</publish> </画像> <!--ビルド ホスト情報を構成します。このマシンでは構成は必要ありません--> <ドッカー> <ホスト>http://192.168.0.10:2375</ホスト> <tlsVerify> 偽</tlsVerify> <レジストリを公開> <username>ユーザー名</username> <password>パスワード</password> <url>192.168.0.20</url> </レジストリを公開> </ドッカー> </構成> </プラグイン> イメージの構築と自動リリースを完了するには、次のコマンドを実行します。 mvn spring-boot:ビルドイメージ その他の注意事項 Dockerホストの設定が有効にならない ノードは下図の①のように構成されているが、②はホストが不整合であることを示すエラーを報告している $DOCKER_HOST 環境変数がローカルに設定されているかどうかを確認します。ソースコードを読んでみると、この変数が最初に読み込まれることがわかりました。 ⋊> ~ $DOCKER_HOST をエコーします 11:07:51 172.17.0.111:2375 のポート番号は、次のとおりです。 ネットワークサポート ビルド プロセス中にいくつかのログを傍受すると、以下では GitHub から約 100M の関連依存関係をダウンロードする必要があり、このプロセスは失敗する可能性があります。この問題を解決するには、プロキシを設定するか、外部の ECS を使用することをお勧めします。 :: スプリングブート :: (v2.4.0) [INFO] > 実行中のクリエイター [INFO] [作成者] https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jre8u275+1-linux-amd64.tar.gz からダウンロード [INFO] [creator] JVMKill Agent 1.16.0: レイヤーへの貢献 [INFO] [作成者] https://github.com/cloudfoundry/jvmkill/releases/download/v1.16.0.RELEASE/jvmkill-1.16.0-RELEASE.so からダウンロードしています [INFO] [作成者] https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.6.0/spring-cloud-bindings-1.6.0.jar からダウンロードしています [INFO] [作成者] チェックサムを検証しています [情報] [作成者] 192.168.0.20/pig4cloud/demo:latest [情報] [INFO] イメージ '192.168.0.20/pig4cloud/demo:latest' が正常にビルドされました [INFO] > イメージ '192.168.0.20/pig4cloud/demo:latest' を 100% プッシュしています [INFO] > イメージ '192.168.0.20/pig4cloud/demo:latest' をプッシュしました [情報] ビルド成功 Spring Boot 2.4 の新機能であるワンクリックで Docker イメージをビルドする機能についての記事はこれで終わりです。Spring Boot 2.4 の Docker イメージビルドの詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。
目次1 SSHとは何か2 SSHパスワードフリーログインを設定する2.1 必要なソフトウェアのインス...
1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...
Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...
推奨される Docker 学習教材: https://www.runoob.com/docker/d...
序文ファイルのコピーによってハードドライブのスペースが大量に浪費され、ファイルを更新するときに混乱が...
Linux topコマンドの紹介top コマンドは、Linux でよく使用されるパフォーマンス分析ツ...
原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...
基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...
おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...
私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...
目次序文準備する要約する継承方法プロトタイプ継承プロトタイプチェーン継承コンストラクタの借用(クラス...
Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...
目次序文ローカルストレージの使用シナリオ使用上の問題解決機能性有効期限を追加データ暗号化を追加する命...
次のサンプル コードでは、Tomcat が XML を解析し、リフレクションを通じてオブジェクトを作...
VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...