S2Iを使用したQuarkusアプリケーションのOpenShiftへのデプロイ
Quarkus のアプリケーションを OpenShift にデプロイするには、Source-to-Image (S2I) メソッドを使用します。S2Iでは、Gitリポジトリを通して、あるいはビルド時にソースコードをアップロードして、ビルドコンテナにソースコードを提供する必要があります。
Quarkus アプリケーションを Java 17, 21, or 25 で OpenShift にデプロイできます。
前提条件
-
Java 17, 21, or 25 で構築された Quarkus アプリケーションがあります。
-
オプション:Quarkusプロジェクトに
quarkus-openshiftエクステンションが含まれていること -
正しい OpenShift プロジェクトの名前空間で作業していること
-
プロジェクトがGitリポジトリにホストされていること
手順
-
Open the
pom.xmlfile, and set the Java version, where${java.version}is 17, 21, or 25.<maven.compiler.release>${java.version}</maven.compiler.release> -
以下のコマンドを入力して、アプリケーションをパッケージ化します。
./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 イメージをインポートします。
-
Java 17:
oc import-image ubi9/openjdk-17 --from=registry.access.redhat.com/ubi9/openjdk-17 --confirm -
Java 21:
oc import-image ubi9/openjdk-21 --from=registry.access.redhat.com/ubi9/openjdk-21 --confirm -
Java 25:
oc import-image ubi9/openjdk-25 --from=registry.access.redhat.com/ubi9/openjdk-25 --confirm-
OpenShiftのイメージレジストリを使用し、同じプロジェクト内のイメージストリームからプルしている場合、ポッドのサービスアカウントはすでに正しいパーミッションを持っている必要があります。
-
他の OpenShift プロジェクトや保護されたレジストリからイメージを引っ張ってくる場合は、追加の設定手順が必要になるかもしれません。
詳細は、 Red Hat Openshift Container Platform のドキュメントを参照してください。
-
IBM Z インフラストラクチャにデプロイする場合は、代わりに
oc import-image ubi9/openjdk-21 --from=registry.redhat.io/ubi9/openjdk-21 --confirmを入力します。このイメージに関する情報は、 UBI9 上の OpenJDK 21 ランタイムイメージ を参照してください。
-
-
-
プロジェクトをビルドし、アプリケーションを作成し、OpenShift サービスをデプロイします。
-
Java 17:
oc new-app registry.access.redhat.com/ubi9/openjdk-17~<git_path> --name=<project_name> -
Java 21:
oc new-app registry.access.redhat.com/ubi9/openjdk-21~<git_path> --name=<project_name> -
Java 25:
oc new-app registry.access.redhat.com/ubi9/openjdk-25~<git_path> --name=<project_name>-
Replace
<git_path>with the path of the Git repository that hosts your Quarkus project.For example, for Java 21:
oc new-app registry.access.redhat.com/ubi9/openjdk-21~https://github.com/johndoe/code-with-quarkus.git --name=code-with-quarkusGit リポジトリに SSH 鍵を設定していない場合は、Git のパスを指定する際に SSH URL ではなく HTTPS URL を使ってください。
-
<project_name>をアプリケーション名に置き換えてください。IBM Zインフラストラクチャにデプロイする場合は、代わりに
oc new-app ubi9/openjdk-21~<git_path> --name=<project_name>を入力してください。
-
-
-
プロジェクトの更新版をデプロイするには、変更をGitリポジトリにプッシュしてから実行します:
oc start-build <project_name> -
アプリケーションへのルートを公開するには、以下のコマンドを実行します:
oc expose svc <project_name>