第3章 Quarkus OpenShift エクステンションを使用した OpenShift への Quarkus アプリケーションのデプロイ
従来の Source-to-Image (S2I) ソースワークフローは、OpenShift 内でアプリケーションのデプロイ可能なアーティファクトを生成します。Quarkus OpenShift エクステンションは、S2I バイナリーワークフローを使用して、より効率的なデプロイメントプロセスを提供します。ソースからビルドする代わりに、エクステンションはローカルファイルシステムから JAR ファイルをアップロードします。その結果、ビルドプロセスは従来の S2I 手法よりも最大で 10 倍速くなります。ローカルで開発する場合、およびビルドサーバーまたは継続的インテグレーション (CI) システムから開発する場合に、Quarkus OpenShift エクステンションを使用して、ソースから繰り返し可能なビルドを実行することができます。
Quarkus OpenShift エクステンションは、開発およびテストの目的でのみ使用してください。実稼働環境では、「4章S2I を使用した OpenShift での Quarkus アプリケーションのデプロイ」で説明されている従来の S2I 手法の使用を検討してください。
手順
- Quarkus Maven プロジェクトが含まれるディレクトリーに移動します。
OpenShift エクステンションを既存プロジェクトに追加するには、以下のコマンドを入力します。
./mvnw quarkus:add-extension -Dextensions="openshift"
./mvnw quarkus:add-extension -Dextensions="openshift"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新規プロジェクトの作成時に
-Dextensions="openshift"引数を含めて、Quarkus OpenShift エクステンションを追加することができます。OpenShift エクステンションを追加すると、スクリプトは以下の依存関係を
pom.xmlファイルに追加します。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-openshift</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-openshift</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 信頼されていない証明書を使用している場合は、
src/main/resources/application.propertiesファイルに以下の行を追加します。quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes-client.trust-certs=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Open JDK 11 の Red Hat Enterprise Linux 7 イメージを使用するように OpenShift を設定するには、以下の行を
application.propertiesファイルに追加します。quarkus.s2i.base-jvm-image=registry.access.redhat.com/openjdk/openjdk-11-rhel7
quarkus.s2i.base-jvm-image=registry.access.redhat.com/openjdk/openjdk-11-rhel7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記IBM Z インフラストラクチャーにデプロイする場合は、
application.propertiesファイルにquarkus.s2i.base-jvm-image=registry.access.redhat.com/openj9/openj9-11-rhel8を追加します。OpenShift ルートを作成するには、以下の行を
application.propertiesファイルに追加します。quarkus.openshift.expose=true
quarkus.openshift.expose=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
変更を
application.propertiesファイルに保存します。 OpenShift CLI (oc) にログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい OpenShift プロジェクトを作成するには、以下のコマンドを実行します。このコマンドの
PROJECT_NAMEは、新規プロジェクトの名前に置き換えます。oc new-project PROJECT_NAME
oc new-project PROJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを OpenShift にデプロイするには、Quarkus Maven プロジェクトディレクトリーに以下のコマンドを入力します。
./mvnw clean package -Dquarkus.kubernetes.deploy=true
./mvnw clean package -Dquarkus.kubernetes.deploy=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift プロジェクトでデプロイされたすべてのアプリケーションの名前およびルートを表示するには、以下のコマンドを入力します。
oc get route
oc get routeCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの完全な URL を表示するには、以下のコマンドを入力します。ここで、
APPLICATION_NAMEは OpenShift プロジェクトにデプロイされたアプリケーションの名前になります。export URL="http://$(oc get route APPLICATION_NAME -o jsonpath='{.spec.host}')" echo "Application URL: $URL" curl $URL/helloexport URL="http://$(oc get route APPLICATION_NAME -o jsonpath='{.spec.host}')" echo "Application URL: $URL" curl $URL/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートの
helloエンドポイントに HTTP 要求を作成するには、以下のコマンドを入力します。curl $URL/hello
curl $URL/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow