第4章 S2I を使用して Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイする
Source-to-Image (S2I) メソッドを使用して、Red Hat build of Quarkus アプリケーションを Red Hat OpenShift Container Platform にデプロイできます。S2I では、Git リポジトリーを使用するか、ビルド時にソースコードをアップロードして、ソースコードをビルドコンテナーに提供する必要があります。
デプロイメント手順は、Red Hat build of Quarkus アプリケーションで使用される Java バージョンによって異なります。
4.1. Java 17 で Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイする リンクのコピーリンクがクリップボードにコピーされました!
S2I メソッドを使用して、Java 17 を実行する Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイできます。
4.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Java 17 でビルドされた Quarkus アプリケーションがある。
-
オプション:
quarkus-openshiftエクステンションが含まれる Quarkus プロジェクトがある。 - 正しい OpenShift プロジェクト namespace で作業している。
- プロジェクトが Git リポジトリーでホストされている。
4.1.2. 手順 リンクのコピーリンクがクリップボードにコピーされました!
pom.xmlファイルを開き、Java バージョンを 17 に設定します。<maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target>次のコマンドを入力して、Java 17 アプリケーションをパッケージ化します。
./mvnw clean package-
pom.xmlファイルと同じレベルに、.s2iという名前のディレクトリーを作成します。 .s2iディレクトリーにenvironmentという名前のファイルを作成し、以下の内容を追加します。MAVEN_S2I_ARTIFACT_DIRS=target/quarkus-app S2I_SOURCE_DEPLOYMENTS_FILTER=app lib quarkus quarkus-run.jar JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0 AB_JOLOKIA_OFF=true JAVA_APP_JAR=/deployments/quarkus-run.jar- 変更をリモート Git リポジトリーにコミットし、プッシュします。
次のコマンドを入力して、サポートされている OpenShift Container Platform イメージをインポートします。
oc import-image ubi9/openjdk-17 --from=registry.access.redhat.com/ubi9/openjdk-17 --confirm注記- OpenShift イメージレジストリーを使用し、同じプロジェクト内のイメージストリームからプルしている場合は、Pod サービスアカウントには適切な権限がすでに付与されている必要があります。
- 他の OpenShift Container Platform プロジェクトまたは保護されたレジストリーからイメージをプルする場合は、追加の設定手順が必要になることもあります。
詳細は、Red Hat Openshift Container Platform のドキュメントを参照してください。
プロジェクトをビルドしてアプリケーションを作成し、OpenShift Container Platform サービスをデプロイします。
oc new-app registry.access.redhat.com/ubi9/openjdk-17~<git_path> --name=<project_name><git_path>は、Quarkus プロジェクトをホストする Git リポジトリーのパスに置き換えます。たとえば、oc new-app registry.access.redhat.com/ubi9/openjdk-17~https://github.com/johndoe/code-with-quarkus.git --name=code-with-quarkusなどです。Git リポジトリー用に SSH キーを設定していない場合は、Git パスを指定する際に、SSH URL の代わりに HTTPS URL を使用します。
-
<project_name>は、アプリケーションの名前に置き換えます。
プロジェクトの更新バージョンをデプロイするには、変更を Git リポジトリーにプッシュしてから、次のコマンドを実行します。
oc start-build <project_name>アプリケーションにルートを公開するには、次のコマンドを実行します。
oc expose svc <project_name>
4.1.3. 検証 リンクのコピーリンクがクリップボードにコピーされました!
現在の OpenShift Container Platform プロジェクトに関連付けられている Pod をリスト表示します。
oc get podsアプリケーションの Pod のログ出力を取得するには、次のコマンドを実行します。
<pod_name>は、アプリケーション名を先頭に付けた最新の Pod の名前に置き換えます。oc logs -f <pod_name>