8.8. JBoss EAP OpenShift プラットフォームでの起動可能な JAR の使用
アプリケーションを起動可能な JAR としてパッケージ化した後、JBoss EAP OpenShift プラットフォームでアプリケーションを実行できます。
OpenShift では、起動可能な JAR で EAP Operator の自動化トランザクションリカバリー機能を使用することはできません。この技術制限の修正は、今後の JBoss EAP XP 2.0.0 パッチリリースに対して予定されています。
要件
- Eclipse MicroProfile Config 開発 用の Maven プロジェクトを作成している。
X.Y.Z.Final-redhat-_BUILD_NUMBER
などの最新の Maven プラグインバージョンを確認している。Z と BUILD_NUMBER は、JBoss EAP XP 2.0.0 製品のライフサイクル中に進化できます。- X は、Maven プラグインのメジャーバージョンです。
- y は、Maven プラグインのマイナーバージョンです。
- z は、Maven プラグインのマイクロバージョンです。/ga/org/wildfly/plugins/wildfly-jar-maven-plugin のインデックス を参照してください。
-
2.0.X.GA-redhat-BUILD_NUMBER
などの最新の Galleon feature-pack バージョンを確認している。X は JBoss EAP XP 2 のマイクロバージョンで、BUILD_NUMBER は Galleon 機能パックのビルド番号。X と BUILD_NUMBER は、JBoss EAP XP 2.0.0 製品のライフサイクル中に進化できます。Index of /ga/org/jboss/eap/wildfly-galleon-pack のインデックス を参照してください。
この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}
です。 -
Galleon 機能パックバージョンの場合は、
${jboss.xp.galleon.feature.pack.version}
です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties> <bootable.jar.maven.plugin.version>2.0.2.Final-redhat-00001</bootable.jar.maven.plugin.version> <jboss.xp.galleon.feature.pack.version>2.0.0.GA-redhat-00002</jboss.xp.galleon.feature.pack.version> </properties>
手順
以下の内容を
pom.xml
ファイルの<build>
要素に追加します。最新バージョンの Maven プラグインと、org.jboss.eap:wildfly-galleon-pack
Galleon 機能パックの最新バージョンを指定する必要があります。以下に例を示します。<plugins> <plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-jar-maven-plugin</artifactId> <version>${bootable.jar.maven.plugin.version}</version> <configuration> <feature-pack-location>org.jboss.eap:wildfly-galleon-pack:${jboss.xp.galleon.feature.pack.version}</feature-pack-location> <layers> <layer>jaxrs-server</layer> <layer>microprofile-platform</layer> </layers> <cloud/> </configuration> <executions> <execution> <goals> <goal>package</goal> </goals> </execution> </executions> </plugin> </plugins>
注記<cloud/>
要素をプラグイン設定の<configuration>
要素に含める必要があります。そのため、JBoss EAP Maven JAR プラグインは OpenShift プラットフォームを選択できます。アプリケーションをパッケージ化します。
$ mvn package
-
oc login
コマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。以下に例を示します。
$ oc new-project bootable-jar-project
以下の
oc
コマンドを入力してアプリケーションイメージを作成します。$ mkdir target/openshift && cp target/microprofile-config-bootable.jar target/openshift 1 $ oc import-image ubi8/openjdk-11 --from=registry.redhat.io/ubi8/openjdk-11 --confirm 2 $ oc new-build --strategy source --binary --image-stream openjdk-11 --name microprofile-config-app 3 $ oc start-build microprofile-config-app --from-dir target/openshift 4
注記OpenShift は CLI スクリプトコマンドのセットを起動可能な JAR 設定ファイルに適用し、クラウド環境に合わせて調整します。このスクリプトにアクセスするには、Maven プロジェクト
/target directory
のbootable-jar-build-artifacts/generated-cli-script.txt
ファイルを開きます。検証:
利用可能な OpenShift Pod の一覧を表示し、以下のコマンドを実行して Pod のビルドステータスを確認します。
$ oc get pods
ビルドされたアプリケーションイメージを確認します。
$ oc get is microprofile-config-app
出力には、名前、イメージリポジトリー、タグなどのビルドされたアプリケーションイメージの詳細が表示されます。この手順の例では、イメージストリーム名とタグの出力には
microprofile-config-app:latest
が表示されます。アプリケーションをデプロイします。
重要起動可能な JAR にシステムプロパティーを指定するには、
JAVA_OPTS_APPEND
環境変数を使用する必要があります。以下の例は、JAVA_OPTS_APPEND
環境変数の使用方法を示しています。oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
$ oc new-app microprofile-config-app $ oc expose svc/microprofile-config-app
重要起動可能な JAR にシステムプロパティーを指定するには、
JAVA_OPTS_APPEND
環境変数を使用する必要があります。以下の例は、JAVA_OPTS_APPEND
環境変数の使用方法を示しています。$ oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
新しいアプリケーションが作成され、起動します。アプリケーション設定は新しいサービスとして公開されます。
検証: ターミナルで以下のコマンドを実行し、アプリケーションが適切に動作するかどうかをテストします。
$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json
想定される出力:
{"result":"Hello jim"}
その他のリソース
- Eclipse MicroProfile の詳細は、Eclipse MicroProfile Config を参照してください。
-
ConfigSource
の詳細は、デフォルトの Eclipse MicroProfile Config 属性 を参照してください。