5.3. 設定環境変数

設定環境変数は、再ビルドを必要とせずにイメージを便利に調整するように設計されており、必要に応じてユーザーが設定する必要があります。

表5.3 設定環境変数

変数名説明デフォルト値値の例

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

Joloka のアクティベーションを無効にする場合 (つまり、空の値がエコーされます)。

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

現在のガベージコレクター時間と以前のガベージコレクター時間に指定される重み。

-

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

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

-

127.0.0.1:8080

JAVA_APP_DIR

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

-

myapplication/

JAVA_ARGS

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

-

-

JAVA_CLASSPATH

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

-

-

JAVA_DEBUG

設定されている場合は、リモートデバッグが有効になります。

false

true

JAVA_DEBUG_PORT

リモートデバッグに使用されるポート。

5005

8787

JAVA_DIAGNOSTICS

これを設定して、コマンドの実行中に一部の診断情報を標準出力に出力します。

false

true

JAVA_INITIAL_MEM_RATIO

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

25

25

JAVA_LIB_DIR

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

JAVA_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 です。これは、-Xms の計算された値が 4096 を超えることはありません。この変数の値は、MB で表されます。

4096

4096

JAVA_MAX_MEM_RATIO

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

50

-

JAVA_OPTS

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

-

-verbose:class

JAVA_OPTS_APPEND

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

-

-Dsome.property=foo

LOGGING_SCRIPT_DEBUG

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

true

True

MAVEN_ARGS

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

package hawt-app:build -DskipTests -e

-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_DIR$S2I_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 を参照してください。

デプロイメント

デプロイメント

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

HTT プロキシーの場所。これは 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

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

-

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

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

-

/maven2/

prefix_MAVEN_REPO_PORT

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

-

8080

prefix_MAVEN_REPO_PRIVATE_KEY

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

-

${user.home}/.ssh/id_dsa

prefix_MAVEN_REPO_PROTOCOL

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

-

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

5.3.1. デフォルト値の設定環境変数

以下の設定環境変数には、上書きできるデフォルト値が指定されています。

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

変数名説明デフォルト値

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 エクスポーターに使用する設定へのパス。

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

S2I_SOURCE_DEPLOYMENTS_FILTER

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

*