Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

2.2.9. Java 環境変数

以下の表は、OpenJDK コンテナーの動作を設定するために使用される Java 環境変数の包括的な一覧です。

表2.1 設定環境変数

変数名説明値の例

AB_JOLOKIA_CONFIG

設定された場合、Jolokia の リファレンスマニュアル で説明されているように、パスを含むこのファイルを Jolokia JVM エージェントプロパティーとして使用します。設定しない場合、マニュアルで定義された設定を使用して、/opt/jolokia/etc/jolokia.properties が作成されます。それ以外の場合、本書の残りの設定は無視されます。

/opt/jolokia/custom.properties

AB_JOLOKIA_DISCOVERY_ENABLED

Jolokia の検索を有効にします。デフォルトは false です。

true

AB_JOLOKIA_HOST

バインド先のホストアドレス。デフォルトは 0.0.0.0 です。

127.0.0.1

AB_JOLOKIA_ID

使用するエージェント ID。デフォルトはコンテナー ID の $HOSTNAME です。

openjdk-app-1-xqlsj

AB_JOLOKIA_OFF

設定されている場合には、Jolokia のアクティベートを無効にします。たとえば、空の値を echo します。Jolokia はデフォルトで有効になります。

true

AB_JOLOKIA_OPTS

エージェント設定に追加されるその他のオプション。key=value,key=value,…​ の形式で表示される必要があります。

backlog=20

AB_JOLOKIA_PASSWORD

Basic 認証のパスワード。デフォルトでは認証は無効になっています。

mypassword

AB_JOLOKIA_PORT

リッスンするポート。デフォルトは 8778 です。

5432

AB_JOLOKIA_USER

Basic 認証のユーザー。デフォルトは jolokia です。

myusername

AB_PROMETHEUS_ENABLE

Prometheus エージェントの使用を有効にします。

true

AB_PROMETHEUS_JMX_EXPORTER_PORT

Prometheus JMX Exporter に使用するポート。

9799

CONTAINER_CORE_LIMIT

CFS Bandwidth Control で説明されているように、計算されたコア制限。

2

CONTAINER_MAX_MEMORY

コンテナーに指定されたメモリー制限。

1024

GC_ADAPTIVE_SIZE_POLICY_WEIGHT

以前の GC 時間に対する現在の GC 時間の重み付け。

90

GC_CONTAINER_OPTIONS

使用する Java GC を指定します。この変数の値には、必要な GC を指定するのに必要な JRE コマンドラインインターフェイスオプションが含まれる必要があります。これは、-XX:+UseParallelOldGC のデフォルトを上書きします。

-XX:+UseG1GC

GC_MAX_HEAP_FREE_RATIO

縮小を回避するための GC 後のヒープ解放の最大パーセンテージ。

40

GC_MAX_METASPACE_SIZE

メタスペースの最大サイズ。

100

GC_METASPACE_SIZE

初期メタスペースのサイズ。

20

GC_MIN_HEAP_FREE_RATIO

拡大を回避するための GC 後のヒープ解放の最小パーセンテージ。

20

GC_TIME_RATIO

ガベージコレクションに費やした時間に対する、ガベージコレクション外で費やした時間 (アプリケーションの実行に費やした時間など) の比率を指定します。

4

HTTPS_PROXY

https プロキシーの場所。これは http_proxy および HTTP_PROXY に優先され、Maven ビルドと Java ランタイムの両方に使用されます。

myuser@127.0.0.1:8080

HTTP_PROXY

http プロキシーの場所。これは、Maven ビルドと Java ランタイムの両方に使用されます。

127.0.0.1:8080

JAVA_APP_DIR

アプリケーションがあるディレクトリー。アプリケーションのすべてのパスは、このディレクトリーに相対的です。

myapplication/`

JAVA_ARGS

java アプリケーションに渡される引数。

-

JAVA_CLASSPATH

使用するクラスパス。指定しない場合、起動スクリプトは JAVA_APP_DIR/classpath ファイルを確認し、その内容をそのままクラスパスとして使用します。このファイルが存在しない場合は、app dir のすべての jar が追加されます (classes:JAVA_APP_DIR/*)。

-

JAVA_DEBUG

設定されている場合、リモートデバッグがオンになります。デフォルトでは無効にされています。

true

JAVA_DEBUG_PORT

リモートデバッグに使用されるポート。デフォルトは 5005 です。

8787

JAVA_DIAGNOSTICS

この変数を設定して、問題が発生した場合に診断情報の一部を標準出力に取得します。デフォルトでは無効にされています。

true

JAVA_INITIAL_MEM_RATIO

JAVA_OPTS-Xms オプションが指定されていない場合に使用されます。これは、最大ヒープメモリーを基にデフォルトの初期ヒープメモリーを算出するために使用されます。コンテナーのメモリー制約のないコンテナーで使用されると、このオプションは効果がありません。メモリー制約がある場合、-Xms はここで設定されている -Xmx メモリーの比率に設定されます。デフォルトは 25 で、-Xmx の 25% が初期ヒープサイズとして使用されることを意味します。このメカニズムを省略するには、この値を 0 に設定します。この場合、-Xms オプションは追加されません。

25

JAVA_LIB_DIR

Java jar ファイルと、クラスパスを 1 行のクラスパス (コロン区切り) として、または 1 行ずつリストされた jar ファイルでクラスパスを保持するオプションの classpath ファイルを保持するディレクトリー。設定されていない場合は、JAVA_LIB_DIRJAVA_APP_DIR と同じになります。

-

JAVA_MAIN_CLASS

java の引数として使用する メインクラス。この環境変数が指定されると、JAVA_APP_DIR のすべての jar ファイルがクラスパスと JAVA_LIB_DIR に追加されます。

com.example.MainClass

JAVA_MAX_INITIAL_MEM

JAVA_OPTS-Xms オプションが指定されていない場合に使用されます。これは、初期ヒープメモリーの最大値を算出するために使用されます。コンテナーのメモリー制約のないコンテナーで使用されると、このオプションは効果がありません。メモリー制約がある場合、-Xms はここで設定されている値に制限されます。デフォルトは 4096 MB です。つまり、-Xms の計算された値は 4096 MB を超えることはありません。この変数の値は、MB で表されます。

4096

JAVA_MAX_MEM_RATIO

JAVA_OPTS-Xmx オプションが指定されていない場合に使用されます。これは、コンテナーの制限に基づいてデフォルトの最大ヒープメモリーを算出するために使用されます。コンテナーのメモリー制約のないコンテナーで使用されると、このオプションは効果がありません。メモリー制約がある場合、-Xmx は、ここで設定されているコンテナーの使用可能なメモリーの比率に設定されます。デフォルト値の 50 は、利用可能なメモリーの 50% が上限として使用されることを意味します。このメカニズムを省略するには、この値を 0 に設定します。この場合、-Xmx オプションは追加されません。

-

JAVA_OPTS

java コマンドに渡される JVM オプション。

-verbose:class

JAVA_OPTS_APPEND

JAVA_OPTS で生成されたオプションに追加されるユーザー指定の Java オプション。

-Dsome.property=foo

LOGGING_SCRIPT_DEBUG

スクリプトのデバッグを有効にするには true に設定します。SCRIPT_DEBUG を非推奨にします。

true

MAVEN_ARGS

Maven の呼び出し時に使用する引数。デフォルトの package hawt-app:build -DskipTests -e を置き換えます。package 実行フェーズにまだバインドされていない場合は、hawt-app:build ゴールを実行してください。実行しない場合は、起動スクリプトは機能しません。

-e -Popenshift -DskipTests -Dcom.redhat.xpaas.repo.redhatga package

MAVEN_ARGS_APPEND

追加の Maven 引数。

-X -am -pl

MAVEN_CLEAR_REPO

設定すると、アーティファクトのビルド後に Maven リポジトリーが削除されます。これは、作成されたアプリケーションイメージを小さく保つのに役立ちますが、インクリメンタルビルドを阻止します。この変数は、S2I_ENABLE_INCREMENTAL_BUILDS で上書きされます。デフォルトは false です。

-

MAVEN_LOCAL_REPO

ローカルの Maven リポジトリーとして使用するディレクトリー。

/home/jboss/.m2/repository

MAVEN_MIRRORS

設定すると、マルチミラーサポートが有効になり、他の MAVEN_MIRROR_* 変数に接頭辞が付けられます。たとえば、DEV_ONE_MAVEN_MIRROR_URL および QE_TWO_MAVEN_MIRROR_URL のようになります。

dev-one、qe-two

MAVEN_MIRROR_URL

アーティファクトの取得に使用されるミラーのベース URL。

http://10.0.0.1:8080/repository/internal/

MAVEN_REPOS

設定すると、マルチリポジトリーサポートが有効になり、他の MAVEN_REPO_* 変数に接頭辞が付けられます。たとえば、DEV_ONE_MAVEN_REPO_URL および QE_TWO_MAVEN_REPO_URL のようになります。

dev-one、qe-two

MAVEN_S2I_ARTIFACT_DIRS

ビルド出力用にスキャンするソースディレクトリーの相対パス。これは DEPLOY_DIR にコピーされます。デフォルトは target です。

target

MAVEN_S2I_GOALS

Maven ビルドで実行されるゴールのスペース区切りリスト。例: mvn $MAVEN_S2I_GOALSデフォルトは package です。

package install

MAVEN_SETTINGS_XML

使用するカスタムの Maven settings.xml ファイルの場所。

/home/jboss/.m2/settings.xml

NO_PROXY

直接アクセスできるホスト、IP アドレス、またはドメインのコンマ区切りリスト。これは、Maven ビルドと Java ランタイムの両方に使用されます。

foo.example.com,bar.example.com

S2I_ARTIFACTS_DIR

アーティファクトのロケーションマウントは、インクリメンタルビルドで使用される save-artifacts スクリプトで永続化されます。これはエンドユーザーによって上書きされてはなりません。

${S2I_DESTINATION_DIR}/artifacts}

S2I_DESTINATION_DIR

io.openshift.s2i.destination ラベルで指定された S2I マウントの root ディレクトリー。これはエンドユーザーによって上書きされてはなりません。

/tmp

S2I_ENABLE_INCREMENTAL_BUILDS

将来のビルドで使用するために保存できるように、ソースおよび中間ビルドファイルを削除しないでください。デフォルトは true です。

true

S2I_IMAGE_SOURCE_MOUNTS

イメージに含める必要があるソースディレクトリー内の相対パスのコンマ区切りリスト。一覧にはワイルドカードを含めることができます。これは find を使用して展開されます。デフォルトでは、マウントされたディレクトリーの内容は、ソースフォルダーと同様に処理されます。ここでは、S2I_SOURCE_CONFIGURATION_DIRS2I_SOURCE_DATA_DIR、および S2I_SOURCE_DEPLOYMENTS_DIR の内容がそれぞれのターゲットディレクトリーにコピーされます。または、install.sh ファイルがマウントポイントのルートにある場合は、代わりに実行されます。CUSTOM_INSTALL_DIRECTORIES を非推奨にします。

extras/*

S2I_SOURCE_CONFIGURATION_DIR

製品設定ディレクトリーにコピーされるアプリケーション設定ファイルを含むディレクトリーへの相対パス。S2I_TARGET_CONFIGURATION_DIR を参照してください。デフォルトは configuration です。

configuration

S2I_SOURCE_DATA_DIR

製品データディレクトリーにコピーされるアプリケーションデータファイルを含むディレクトリーへの相対パス。S2I_TARGET_DATA_DIR を参照してください。デフォルトは data です。

data

S2I_SOURCE_DEPLOYMENTS_DIR

製品デプロイメントディレクトリーにコピーされるバイナリーファイルを含むディレクトリーへの相対パス。S2I_TARGET_DATA_DIR を参照してください。デフォルトは deployments に設定されます。

デプロイメント

S2I_SOURCE_DIR

ビルドするソースコードのマウントの場所。これはエンドユーザーによって上書きされてはなりません。

${S2I_DESTINATION_DIR}/src}

S2I_TARGET_CONFIGURATION_DIR

S2I_SOURCE_DIR/S2I_SOURCE_CONFIGURATION_DIR にあるファイルがコピーされる絶対パス。

/opt/eap/standalone/configuration

S2I_TARGET_DATA_DIR

S2I_SOURCE_DIR/S2I_SOURCE_DATA_DIR にあるファイルがコピーされる絶対パス。

/opt/eap/standalone/data

S2I_TARGET_DEPLOYMENTS_DIR

S2I_SOURCE_DIR/S2I_SOURCE_DEPLOYMENTS_DIR にあるファイルがコピーされる絶対パス。また、これはビルド出力がコピーされるディレクトリーです。

/deployments

http_proxy

http プロキシーの場所。これは HTTP_PROXY よりも優先され、Maven ビルドと Java ランタイムの両方に使用されます。

http://127.0.0.1:8080

https_proxy

https プロキシーの場所。これは、HTTPS_PROXYhttp_proxy、および HTTP_PROXY よりも優先され、Maven ビルドと Java ランタイムの両方に使用されます。

myuser:mypass@127.0.0.1:8080

no_proxy

直接アクセスできるホスト、IP アドレス、またはドメインのコンマ区切りリスト。これは NO_PROXY よりも優先され、Maven ビルドと Java ランタイムの両方に使用されます。

*.example.com

prefix_MAVEN_MIRROR_ID

指定されたミラーに使用する ID。省略する場合には、一意の ID が生成されます。

internal-mirror

prefix_MAVEN_MIRROR_OF

このエントリーでミラリングされるリポジトリー ID。デフォルト値は external: です。

-

prefix_MAVEN_MIRROR_URL

ミラーの URL。

http://10.0.0.1:8080/repository/internal

prefix_MAVEN_REPO_DIRECTORY_PERMISSIONS

Maven リポジトリーディレクトリーのパーミッション。

775

prefix_MAVEN_REPO_FILE_PERMISSIONS

Maven リポジトリーファイルのパーミッション。

664

prefix_MAVEN_REPO_HOST

完全に定義された URL を使用していない場合、Maven リポジトリーホストは、サービスにフォールバックします。

repo.example.com

prefix_MAVEN_REPO_ID

Maven リポジトリー ID。

my-repo-id

prefix_MAVEN_REPO_LAYOUT

Maven リポジトリーのレイアウト。

default

prefix_MAVEN_REPO_NAME

Maven リポジトリー名。

my-repo-name

prefix_MAVEN_REPO_PASSPHRASE

Maven リポジトリーのパスフレーズ。

maven1!

prefix_MAVEN_REPO_PASSWORD

Maven リポジトリーのパスワード。

maven1!

prefix_MAVEN_REPO_PATH

完全に定義された URL を使用していない場合、Maven リポジトリーパスは、サービスにフォールバックします。

/maven2/

prefix_MAVEN_REPO_PORT

完全に定義された URL を使用していない場合、Maven リポジトリーのポートは、サービスにフォールバックします。

8080

prefix_MAVEN_REPO_PRIVATE_KEY

Maven リポジトリーのプライベートキー。

${user.home}/.ssh/id_dsa

prefix_MAVEN_REPO_PROTOCOL

完全に定義された URL を使用していない場合、Maven リポジトリーのプロトコルは、サービスにフォールバックします。

http

prefix_MAVEN_REPO_RELEASES_CHECKSUM_POLICY

Maven リポジトリーは、チェックサムポリシーをリリースします。

warn

prefix_MAVEN_REPO_RELEASES_ENABLED

Maven リポジトリーのリリースが有効。

true

prefix_MAVEN_REPO_RELEASES_UPDATE_POLICY

Maven リポジトリーリリース更新ポリシー。

always

prefix_MAVEN_REPO_SERVICE

prefix_MAVEN_REPO_URL が指定されていない場合に、ルックアップする Maven リポジトリーサービス。

buscentr-myapp

prefix_MAVEN_REPO_SNAPSHOTS_CHECKSUM_POLICY

Maven リポジトリースナップショットチェックサムポリシー。

warn

prefix_MAVEN_REPO_SNAPSHOTS_ENABLED

Maven リポジトリーのスナップショットが有効。

true

prefix_MAVEN_REPO_SNAPSHOTS_UPDATE_POLICY

Maven リポジトリースナップショット更新ポリシー。

always

prefix_MAVEN_REPO_URL

Maven リポジトリーの完全に定義された URL。

http://repo.example.com:8080/maven2/

prefix_MAVEN_REPO_USERNAME

Maven リポジトリーのユーザー名。

mavenUser

表2.2 デフォルト値の設定環境変数

変数名説明

AB_JOLOKIA_AUTH_OPENSHIFT

OpenShift TLS 通信のクライアント認証を切り替えます。このパラメーターの値は、提供されるクライアントの証明書に含まれる必要がある相対識別名になります。このパラメーターを有効にすると、Jolokia が自動的に https 通信モードに切り替わります。デフォルトの CA 証明書は /var/run/secrets/kubernetes.io/serviceaccount/ca.crt に設定されます。

true

AB_JOLOKIA_HTTPS

https との安全な通信をオンにします。デフォルトでは、AB_JOLOKIA_OPTSserverCert 設定の指定がないと、自己署名サーバー証明書が生成されます。

true

AB_JOLOKIA_PASSWORD_RANDOM

AB_JOLOKIA_PASSWORD が無作為に生成されるかどうかを決定します。パスワードを無作為に生成する場合は true に設定します。生成された値は /opt/jolokia/etc/jolokia.pw に書き込まれます。

true

AB_PROMETHEUS_JMX_EXPORTER_CONFIG

Prometheus JMX Exporter に使用する設定へのパス。

/opt/jboss/container/prometheus/etc/jmx-exporter-config.yaml

S2I_SOURCE_DEPLOYMENTS_FILTER

デプロイメントのコピー時に適用される、スペースで区切られたフィルターの一覧。デフォルトは * に設定されます。

*