背景 開発プロセス中に 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リクエストデータを記録します。
目次プロトタイプチェーンプロトタイプチェーンに基づいてシンプルなJQueryライブラリを実装すること...
数日前、私のウェブサイトがいくつかの IP アドレスから大量の悪意のある標的型スキャンを受け、ブルー...
Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...
vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...
<br />製品設計プロセス全体において、ビジュアルデザインとインタラクションデザインの...
目次1. 集計クエリ1. COUNT関数2. SUM関数3. AVG関数4. MAX関数とMIN関数...
/****************** * Linux カーネルの時間管理 ***********...
目次1. Tencent Cloud Serverに接続する2. 環境整備Jenkinsのデプロイメ...
最近、次のような効果を実装しました。再生ボタンをクリックするとタイムラインの再生が開始され、一時停止...
1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...
まず、Navicat for MySQL をダウンロードしてインストールする必要があります。正規版の...
目次1. まずRefとは何かを説明しましょう2. フックでのrefの使用1. HTMLDomフックで...
最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...
目次序文1. MySQLはSSL構成を有効にする1.1 SSLが有効になっているかどうかを確認する1...
1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...