付録E JVM 環境変数
E.1. OpenJDK 8 でのS2I Java ビルダーイメージ
Java ビルドのこの S2I ビルダーイメージでは、他のアプリケーションサーバーを使用せずに直接結果を実行できます。これは、フラットなクラスパス (fat jars
を含む) を持つマイクロサービスに適しています。
Fuse on OpenShift イメージの使用時に Java オプションを設定できます。Fuse on OpenShift イメージのすべてのオプションは、以下のように環境変数を使用して設定されます。JVM オプションでは、JAVA_OPTIONS
環境変数を使用できます。また、アプリケーションに渡される引数には JAVA_ARGS
を提供します。
E.2. OpenJDK 8 でのS2I Karaf ビルダーイメージ
Karaf4 カスタムアセンブリーベースの Maven プロジェクトをビルドするには、このイメージを OpenShift の Source To Image と使用します。
S2I を使用するコマンドは次のとおりです。
s2i build <git repo url> registry.redhat.io/fuse7/fuse-karaf-openshift:1.3 <target image name> docker run <target image name>
E.2.1. Karaf4 アセンブリーの設定
Maven プロジェクトによってビルドされた Karaf4 アセンブリーの場所を提供する方法は複数あります。
-
出力ディレクトリーのデフォルトのアセンブリーファイル
*.tar.gz
。 -
sti または oc コマンドで
-e flag
を使用。 -
プロジェクトソース下の
.sti/environment
にあるFUSE_ASSEMBLY
プロパティーを設定。
E.2.2. ビルドのカスタマイズ
Maven のビルドをカスタマイズすることが可能です。MAVEN_ARGS
環境変数を設定して、動作を変更できます。
デフォルトでは、MAVEN_ARGS
は以下のように設定されます。
Karaf4: install karaf:assembly karaf:archive -DskipTests -e
E.3. 環境変数
S2I Java および Karaf ビルダーイメージの動作に影響を与える環境変数を以下に示します。
E.3.1. ビルド時
ビルド時には以下の環境変数を使用できます。
-
MAVEN_ARGS
: Maven の呼び出し時に使用する引数で、デフォルトのパッケージを置き換えます。 -
MAVEN_ARGS_APPEND
: 追加の Maven引数で、-X
や-am
-pl
などの一時的な引数の追加に便利です。 -
ARTIFACT_DIR
: マルチモジュールのビルドのために Jar ファイルが作成されたtarget/
へのパス。これらは${MAVEN_ARGS}
に追加されます。 -
ARTIFACT_COPY_ARGS
: アーティファクトを出力ディレクトリーからアプリケーションディレクトリーにコピーするときに使用する引数。イメージの一部になるアーティファクトを指定するのに便利です。 -
MAVEN_CLEAR_REPO
: 設定すると、アーティファクトのビルド後に Maven リポジトリーが削除されます。これはアプリケーションイメージを小さく維持するのに便利ですが、インクリメンタルビルドを使用できません。デフォルト値は false です。
E.3.2. 実行時
以下の環境変数を使用して、実行スクリプトに影響を与えることができます。
-
JAVA_APP_DIR
: アプリケーションがあるディレクトリー。アプリケーションのすべてのパスはこのディレクトリーを基準にした相対パスになります。 -
JAVA_LIB_DIR
: このディレクトリーには、Java jar ファイルと、クラスパスが保持されるオプションのクラスパスファイルが含まれます。単一行のクラスパス (コロン区切り) または行ごとにリストされた jar ファイルのいずれかになります。設定のない場合はJAVA_LIB_DIR
はJAVA_APP_DIR
ディレクトリーと同じになります。 -
JAVA_OPTIONS
: Java の呼び出し時に追加するオプション。 -
JAVA_MAX_MEM_RATIO
: JAVA_OPTIONS に-Xmx
オプションがない場合に使用されます。これは、コンテナーの制限をベースにしてデフォルトの最大ヒープメモリーを算出するために使用されます。このオプションをコンテナーのメモリー制限がない Docker コンテナーで使用しても、何も影響はありません。 -
JAVA_MAX_CORE
: ガベッジコレクタースレッドの数など、特定のデフォルトを算出するために使用される利用可能なコアの数を手動で制限します。0 に設定すると、コアの数を基にしてベース JVM のチューニングを行うことができません。 -
JAVA_DIAGNOSTICS
: これを設定して、一部の診断情報を取得し、標準出力に送ります。 -
JAVA_MAIN_CLASS
: Java の引数として使用するメインクラス。この環境変数を使用すると$JAVA_APP_DIR
ディレクトリーのすべての jar ファイルがクラスパスと$JAVA_LIB_DIR
ディレクトリーに追加されます。 -
JAVA_APP_JAR
:java -jar
で開始できるようにするための適切なマニフェストを持つ jar ファイル。ただし、指定がない場合は$JAVA_MAIN_CLASS
が設定されます。すべての場合で jar ファイルはクラスパスに追加されます。 -
JAVA_APP_NAME
: プロセスに使用する名前。 -
JAVA_CLASSPATH
: 使用するクラスパス。指定の無い場合は起動スクリプトが${JAVA_APP_DIR}/classpath
ファイルを確認し、その内容をクラスパスとして使用します。このファイルが存在しない場合は、アプリケーションディレクトリーのすべての jar が(classes:${JAVA_APP_DIR}/*)
以下に追加されます。 -
JAVA_DEBUG
: 設定するとリモートでのデバッグが有効になります。 -
JAVA_DEBUG_PORT
: リモートでのデバッグに使用されるポート。デフォルト値は 5005 です。
E.3.3. Jolokia の設定
以下の環境を Jolokiaで使用できます。
-
AB_JOLOKIA_OFF
: 設定した場合、Jolokia のアクティベートを無効にします (空の値をエコーします)。Jolokia はデフォルトで有効になっています。 -
AB_JOLOKIA_CONFIG
: 設定した場合、ファイル (パスを含む) を Jolokia JVM エージェントプロパティーとして使用します。設定のない場合は、設定を使用して/opt/jolokia/etc/jolokia.properties
が作成されます。 -
AB_JOLOKIA_HOST
: バインドするホストアドレス (デフォルト値は 0.0.0.0)。 -
AB_JOLOKIA_PORT
: 使用するポート (デフォルト値は 8778)。 -
AB_JOLOKIA_USER
: Basic 認証に使用されます。デフォルトでは、jolokia
になります。 -
AB_JOLOKIA_PASSWORD
: Basic 認証のパスワード。デフォルトでは認証は無効になっています。 -
AB_JOLOKIA_PASSWORD_RANDOM
: 値を生成し、/opt/jolokia/etc/jolokia.pw
ファイルに書き込みます。 -
AB_JOLOKIA_HTTPS
:HTTPS
でセキュアな通信を有効にします。デフォルトでは、serverCert 設定がAB_JOLOKIA_OPTS
に指定されていないと、自己署名サーバー証明書が生成されます。 -
AB_JOLOKIA_ID
: 使用するエージェント ID。 -
AB_JOLOKIA_DISCOVERY_ENABLED
: Jolokia の検出を有効にします。デフォルト値は false です。 -
AB_JOLOKIA_OPTS
: エージェント設定に追加される追加のオプション。オプションはkey=value
の形式で指定されます。
以下は、さまざまな環境とのインテグレーションにおけるオプションになります。
-
AB_JOLOKIA_AUTH_OPENSHIFT
: OpenShift TSL 通信のクライアント認証を有効にします。このパラメーターの値がクライアント証明書に存在するようにしてください。このパラメーターを有効にすると、Jolokia が自動的にHTTPS
通信モードになります。デフォルトの CA 証明書は、/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
に設定されます。
JAVA_ARGS
変数を対応する値に設定すると、アプリケーションの引数を指定できます。