第5章 既知の問題
本セクションでは、Red Hat ビルドの Quarkus 1.3 の既知の問題について記載しています。
-
smallrye-reactive-messaging
エクステンションを追加すると、コードで Reactive API を使用していない場合でも、Quarkus を閉じる際に ReactiveX に関する警告メッセージが表示されます。詳細は、「Red Hat build of Quarkus warns that io.vertx.reactivex.core.Vertx is deprecated」 を参照してください。 quarkus-container-image-s2
エクステンションは通常、quarkus-openshift
エクステンションを介して間接的に使用され、s390x アーキテクチャーに推奨される Red Hat OpenJ9 イメージを、run-java.sh
スクリプトが含まれていないかのように扱います。これは生成されたopenshift.yml
ファイルに影響します。イメージが
run-java.sh
スクリプトを使用する場合、コンテナーの定義には複数の環境変数のみが含まれます。コンテナーで実行される必要があるコマンドは含まれません。代わりに、run-java.sh
スクリプトを実行するデフォルトの S2Irun
スクリプトが使用されます。イメージが
run-java.sh
スクリプトを使用しない場合、コンテナー定義にはコンテナーで実行される必要のあるjava
コマンドが含まれます。これらのシナリオで 1 つ異なるのは、
run-java.sh
スクリプトが、現在の作業ディレクトリーをアプリケーション JAR ファイルが置かれているディレクトリー (通常は/deployments
) へ変更する点です。これは、application.properties
設定ファイルを使用して ConfigMap をコンテナーファイルシステムにマウントする際に重要となります。run-java.sh
スクリプトの場合、通常は ConfigMap を/deployments/config
ディレクトリーにマウントする必要があります。他のイメージの場合は、ConfigMap をイメージが定義するデフォルトの作業ディレクトリーにマウントする必要があります。注記この問題は、s390x アーキテクチャーに推奨される Red Hat OpenJ9 イメージを使用するすべてのアプリケーションへの影響はありません。
原因
quarkus-container-image-s2i
エクステンションには、run-java.sh
スクリプトが含まれる既知のイメージの一覧があります。その他のイメージは、run-java.sh
スクリプトが含まれていないかのように処理されます。この問題は今後のリリースで修正される予定です。回避策
お使いのアプリケーションが現在の作業ディレクトリーの問題の影響を受ける場合、Pod 定義でコンテナーの現在の作業ディレクトリーを定義できます。これにより、イメージで定義されたデフォルトの作業ディレクトリーが上書きされます。
quarkus-openshift
エクステンションを使用してopenshift.yml
ファイルを生成する場合は、以下の設定プロパティーを使用します。quarkus.openshift.working-dir=/deployments
特に
application.properties
設定ファイルで ConfigMap をマウントする際に、お使いのアプリケーションが現在の作業ディレクトリーの問題の影響を受ける場合は、別のオプションとして、ConfigMap を特定のディレクトリーにマウントします。quarkus-openshift
エクステンションを使用する場合は、イメージが定義したデフォルトの作業ディレクトリーが/home/jboss
であると想定し、以下の設定プロパティーを使用します。quarkus.openshift.mounts.<mount name>.path=/home/jboss/config