Cloud Native Buildpacks

Docker イメージは、Cloud Native Buildpacks (英語) を使用して、Maven または Gradle プラグインから直接ビルドできます。Cloud Foundry や Heroku などのアプリケーションプラットフォームを使用したことがある場合は、おそらく buildpack を使用したことがあるでしょう。Buildpacks は、アプリケーションを取得して、プラットフォームが実際に実行できるものに変換するプラットフォームの一部です。例: Cloud Foundry の Java buildpack は、.jar ファイルをプッシュしていることを認識し、関連する JRE を自動的に追加します。

Cloud Native Buildpacks を使用すると、どこでも実行できる Docker 互換のイメージを作成できます。Spring Boot には、Maven と Gradle の両方を直接サポートする buildpack が含まれています。つまり、1 つのコマンドを入力するだけで、ローカルで実行されている Docker デーモンに適切なイメージをすばやく取得できます。

Maven および Gradle で buildpacks を使用する方法については、個々のプラグインのドキュメントを参照してください。

Paketo Spring Boot buildpack [GitHub] (英語) は layers.idx ファイルをサポートしているため、これに適用されるレイヤーのカスタマイズは、 buildpacks によって作成されるイメージに反映されます。
再現可能なビルドとコンテナーイメージのキャッシュを実現するために、buildpacks はアプリケーションリソースのメタデータ (ファイルの「最終変更」情報など) を操作できます。アプリケーションが実行時にそのメタデータに依存しないようにする必要があります。Spring Boot は静的リソースを提供するときにその情報を使用できますが、これは spring.web.resources.cache.use-last-modified で無効にすることができます。