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は正規表現を使用してテーブルの例をテストします
この半月、期末試験の準備にかなりのエネルギーを費やしました。今日はしっかり復習するべきだったのですが...
目次テレポートの目的テレポートの仕組みこの記事では、以下の内容を取り上げます。テレポートの目的テレポ...
目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...
この記事では、Docker で新しいイメージを手動で構築する方法を紹介し、皆さんと共有します。詳細は...
勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...
1. MySQLデータベースをインストールする① ダウンロードして解凍し、/opt/softディレク...
目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...
1. IE6 では z-index が無効です。 CSS では、階層を変更するために z-index...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
デフォルトでは、Linux の MySQL はテーブル名の大文字と小文字を区別します。 MySQL ...
目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...
この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...
現在、多くの人がインターネット上で生活しており、インターネットで情報を検索することは日常的な作業とな...
序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...
目次1. 環境2. 準備3. MySQL 8.0.11をインストールするMySQL 8 の公式バージ...