検索

付録E JVM 環境変数

download PDF

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_DIRJAVA_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 変数を対応する値に設定すると、アプリケーションの引数を指定できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.