This reference documentation offers an in-depth description of the behavior and configuration options of the Paketo Java Buildpack. For explanations of how to use the buildpack for several common use-cases, see the Paketo Java Buildpack How To documentation.
Paketo Java Buildpack はコンパイル済みのアーティファクトやソースコードから JVM アプリケーションのコンテナイメージを作成します。
Java Buildpack は [合成 Buildpack][paketo/composite-buildpack] です。 ビルドのそれぞれの処理を対応する コンポーネント Buildpack が実行します。 全ての設定項目や機能については、それぞれのコンポーネント Buildpack のホームページを参照してください。
Java Buildpack は Bellsoft Liberica の JRE および JDK を使用します。 JVM をインストールするのは BellSoft Liberica Buildpack です。 JDK をインストールするのはビルド用のコンテナだけで、最終的なコンテナイメージには JRE をインストールします。
Bellsoft Liberica Buildpack の全ての設定項目は Bellsoft Liberica Buildpack のドキュメント を参照してください。
Java Buildpack は、コンテナイメージを実行するときに使用できるメモリサイズから、JVM の使用するメモリサイズを計算するメモリ計算機(Memory Calculator)というコンポーネントをインストールします。
計算した結果は環境変数 JAVA_TOOL_OPTIONS
へ設定します。
アプリケーションが Spring Boot を使用していることを検出すると、Spring Boot Buildpack は最終的なコンテナイメージに Spring Boot 特有の最適化や動的な自動構成プロパティを有効化するための情報をメタデータとして追加します。
Spring Boot Buildpack は次のようなラベルを追加します。
org.opencontainers.image.title
- META-INF/MANIFEST.MF
の Implementation-Title
を設定しますorg.opencontainers.image.version
- META-INF/MANIFEST.MF
の Implementation-Version
を設定しますorg.springframework.boot.version
- META-INF/MANIFEST.MF
の Spring-Boot-Version
を設定しますorg.springframework.boot.spring-configuration-metadata.json
META-INF/dataflow-configuration-metadata.properties
が存在するときに設定しますMETA-INF/MANIFEST.MF
の Spring-Boot-Lib
で指定したディレクトリに存在するいずれかの jar ファイルについて、META-INF/spring-configuration-metadata.json
の内容を統合、加工した JSON 形式の文字列を設定しますMETA-INF/spring-configuration-metadata.json
containing [configuration metadata][spring boot configuration metadata].org.springframework.cloud.dataflow.spring-configuration-metadata.json
META-INF/dataflow-configuration-metadata.properties
が存在するときに設定しますMETA-INF/dataflow-configuration-metadata.properties
の内容を加工した JSON 形式の文字列を設定しますまた、アプリケーションの依存ライブラリの情報を BOM の dependencies
へ設定します。
Spring Boot Buildpack は Spring Boot アプリケーションに特有の最適化を適用できます。
例えば、Buildpack の検出したアプリケーションがリアクティブ Web アプリケーションなら、最大スレッド数を初期値の 250
から 50
へ減らします。
Java Buildpack の使用するコンポーネント Buildpack は次のとおりです。 一覧に並んだ順で実行します。
Buildpack | 必須/任意 | 役割 |
---|---|---|
Paketo CA Certificates Buildpack | 任意 | ビルド時点と実行時点の両方で、指定した CA 証明書をシステムのトラストストアへ追加します |
Paketo BellSoft Liberica Buildpack | 必須 | JDK あるいは JRE をインストールします |
Paketo Gradle Buildpack | 任意 | ソースコードから Gradle アプリケーションをビルドします |
Paketo Leiningen Buildpack | 任意 | ソースコードから Leiningen アプリケーションをビルドします |
Paketo Maven Buildpack | 任意 | ソースコードから Maven アプリケーションをビルドします |
Paketo SBT Buildpack | 任意 | ソースコードから SBT アプリケーションをビルドします |
Paketo Executable JAR Buildpack | 任意 | 実行可能形式の jar ファイルを起動するプロセス種類を構成します |
Paketo Apache Tomcat Buildpack | 任意 | war ファイルを配置した Tomcat を起動するプロセス種類を構成します |
Paketo DistZip Buildpack | 任意 | 配布形式のzipアーカイブになっているアプリケーションを起動するプロセス種類を構成します |
Paketo Spring Boot Buildpack | 任意 | Spring Boot アプリケーションの設定とメタデータを構成します |
Paketo Procfile Buildpack | 任意 | [Procfile][procfiles] でアプリケーションが任意のプロセス種類を定義できるようにします |
Paketo Azure Application Insights Buildpack | 任意 | Azure Application Insight の Java エージェントと接続情報、資格情報を構成します |
Paketo Debug Buildpack | 任意 | デバッグ接続のための設定を構成します |
Paketo Google Stackdriver Buildpack | 任意 | Google Stackdriver の Java エージェントと接続情報、資格情報を構成します |
Paketo JMX Buildpack | 任意 | JMX 接続のための設定を構成します |
Paketo Encrypt At Rest Buildpack | 任意 | 暗号化したアプリケーションレイヤーを、起動時に復号するプロファイルスクリプトを構成します |
Paketo Environment Variables Buildpack | 任意 | 任意の環境変数をコンテナイメージに埋め込みます |
Paketo Image Labels Buildpack | 任意 | OCI 専用のラベルや、任意のラベルをコンテナイメージに設定します |
Last modified: September 15, 2021