docs community blog github
Edit

Java Buildpack リファレンス

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 のホームページを参照してください。

使用できる JVM

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 を使用していることを検出すると、Spring Boot Buildpack は最終的なコンテナイメージに Spring Boot 特有の最適化や動的な自動構成プロパティを有効化するための情報をメタデータとして追加します。

追加するメタデータ

Spring Boot Buildpack は次のようなラベルを追加します。

  • org.opencontainers.image.title - META-INF/MANIFEST.MFImplementation-Title を設定します
  • org.opencontainers.image.version - META-INF/MANIFEST.MFImplementation-Version を設定します
  • org.springframework.boot.version - META-INF/MANIFEST.MFSpring-Boot-Version を設定します
  • org.springframework.boot.spring-configuration-metadata.json
    • META-INF/dataflow-configuration-metadata.properties が存在するときに設定します
    • アプリケーションと、META-INF/MANIFEST.MFSpring-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 専用のラベルや、任意のラベルをコンテナイメージに設定します
Edit

Last modified: September 15, 2021