1. Spring Bootプロジェクトを準備するシンプル、スキップ 2. 関連する設定を実行するインターネット上の多くのブログでは、階層化パッケージ化を有効にするには pom.xml を手動で構成する必要があることを強調しています。 <ビルド> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <構成> <!--階層型コンパイルのサポートを有効にする--> <レイヤー> <enabled>有効</enabled> </レイヤー> </構成> </プラグイン> </プラグイン> </ビルド> バージョン 2.3.x では、これは新しい機能であり、手動で構成して有効にする必要があります。ただし、現在の Spring Boot バージョン (バージョン 2.6.1 を使用) では、手動での構成は必要なく、デフォルトでこの機能がサポートされています。 (いくつかのブログによると、バージョン 2.4.x 以降ではデフォルトで有効になっているようです) 現在の公式ドキュメント (バージョン 2.6.0) にも、デフォルトでサポートされていると記載されていますが、この機能が必要ない場合にのみ手動で構成する必要があります。 再パッケージ化されたアーカイブには、デフォルトで <プロジェクト> <ビルド> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <構成> <レイヤー> <enabled>偽</enabled> </レイヤー> </構成> </プラグイン> </プラグイン> </ビルド> </プロジェクト> 3. パッケージ
実際、本質は、spring-boot-mavenプラグインの再パッケージを使用して、依存関係を含む完全なjarパッケージと元のjarパッケージを取得することです(サフィックス.originalは自動的に追加されます) クラスパス.idx
レイヤー.idx
再度確認: 階層化された情報OK 4. DockerファイルDockerfile ファイルも比較的従来型です。イメージをパッケージ化する前に、jarmode コマンドを使用して jar パッケージを解凍するだけです。次に、パッケージ化プロセス中に、さまざまなレイヤーが順番にコピーされ、変更される可能性が最も高いアプリケーション レイヤーが最後に配置されます。このようにして、変更のない前のレイヤーは Docker のキャッシュを直接使用して、パッケージ化の効率を向上させることができます。
5. アプリケーションの変更とダイブ分析実際、画像を一度だけパッケージ化すると、レイヤー化の利点が反映されないため、一部のコンテンツを変更してから再度パッケージ化する必要があります(複数回でも、本質は同じなので、ここでは一度だけ変更します)。 jar パッケージを再パックしてイメージを再作成し、2 つのイメージを取得します。 dive を使用して 2 つの画像を分析します。 アプリケーション層 (application/application/) が変更されるまで、両側の層の Id と Digest はまったく同じであるため、これらの層を再利用できることがわかります。また、同じ層は docker ディレクトリに個別に保存されるだけなので、コンテナのコンパイルとプッシュにかかる時間を大幅に短縮できます。 Spring Boot 階層化パッケージング Docker イメージの実践と分析に関するこの記事はこれで終わりです。より関連性の高い Spring Boot 階層化パッケージング Docker イメージのコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: レスポンシブ Web をデザインするにはどうすればいいですか?レスポンシブウェブデザインのメリットとデメリット
>>: HTMLは正規表現を使用してテーブルの例をテストします
Count(*) または Count(1) または Count([column]) は、おそらく S...
docker コンテナを使用する場合、vim がインストールされていないことがあり、vim コマンド...
序文JavaScript で記述できるアプリケーションは、最終的には JavaScript で記述さ...
問題の説明: Linux システムのネットワーク カード ファイル /etc/sysconfig/n...
1. Javaプロジェクトをjarパッケージにパッケージ化するここではMavenツールを使用します...
1: アドレス書き換えとアドレス転送の意味を理解する。アドレス書き換えとアドレス転送は異なる...
MySQL 5.0 は、いくつかの「高度な機能」があるため定番となっています。これは、Windows...
目次序文1. ヌル合体演算子2. ??= 空代入演算子3. ?. オプション連鎖演算子4. ?: 三...
序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...
コンピュータ ルームのサーバー上の mysql がしばらく実行されていたのですが、突然、再起動しても...
序文通常のユーザーはcrontabスケジュールタスクを定義します。たとえば、Oracleユーザーはス...
目次最初のステップ: 2 番目のステップは、request.js で関連する構成を行うことです。re...
目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...
1. fastdfs の紹介1. fastdfsとは何かFastdfs は軽量のオープンソース分散フ...
mysql のような php switch case ステートメント。 xxフィールドを選択、ケース...