1.6. S2I を使用して Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイする


Source-to-Image (S2I) メソッドを使用して、Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイできます。S2I では、Git リポジトリーを使用するか、ビルド時にソースをアップロードして、ソースコードをビルドコンテナーに提供する必要があります。

重要

S2I は、ネイティブデプロイメントではサポートされません。ネイティブ実行可能ファイルにコンパイルされた Quarkus アプリケーションをデプロイするには、Docker ビルドストラテジー を使用します。

S2I を使用して Quarkus アプリケーションを OpenShift Container Platform にデプロイする手順は、使用している Java バージョンにより異なります。

Source-to-Image (S2I) メソッドを使用して、Java 17 で実行されている Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイできます。

前提条件

手順

  1. pom.xml ファイルを開き、次のように Java 設定をバージョン 17 に変更します。

    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    Copy to Clipboard Toggle word wrap
  2. Java 17 アプリケーションをパッケージ化するには、次のコマンドを入力します。

    ./mvnw clean package
    Copy to Clipboard Toggle word wrap
  3. pom.xml ファイルと同じレベルに、.s2i というディレクトリーを作成します。
  4. .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
    Copy to Clipboard Toggle word wrap
  5. 変更をリモート Git リポジトリーにコミットし、プッシュします。
  6. 次のコマンドを入力して、サポートされている OpenShift Container Platform イメージをインポートします。

    oc import-image ubi8/openjdk-17 --from=registry.access.redhat.com/ubi8/openjdk-17 --confirm
    Copy to Clipboard Toggle word wrap
    注記
    • OpenShift イメージレジストリーを使用し、同じプロジェクト内のイメージストリームからプルしている場合、Pod サービスアカウントにはすでに正しい権限が付与されているはずです。
    • 他の OpenShift Container Platform プロジェクトまたは保護されたレジストリーからイメージをプルする場合は、追加の設定手順が必要になることもあります。

    詳細は、Red Hat OpenShift Container Platform のドキュメントで イメージプルシークレットの使用 を参照してください。

  7. 次のコマンドを入力して、プロジェクトのビルド、アプリケーションの作成、OpenShift Container Platform サービスのデプロイを実行します。

    oc new-app registry.access.redhat.com/ubi8/openjdk-17~<git_path> --name=<project_name>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <git_path> は、Quarkus プロジェクトをホストする Git リポジトリーへのパスです。たとえば、oc new-app registry.access.redhat.com/ubi8/openjdk-17~https://github.com/johndoe/code-with-quarkus.git --name= code-with-quarkus です。

      Git リポジトリー用に SSH キーを設定していない場合は、Git パスを指定する際に、SSH URL の代わりに HTTPS URL を使用します。

    • <project_name> はアプリケーションの名前です。
  8. プロジェクトの更新バージョンをデプロイするには、更新を Git リポジトリーにプッシュしてから、以下のコマンドを入力します。

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap
  9. 次のコマンドを入力して、ルートを Quarkus アプリケーションに公開します。

    oc expose svc <project_name>
    Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを入力して、現在の OpenShift プロジェクトに関連付けられている Pod のリストを表示します。

    oc get pods
    Copy to Clipboard Toggle word wrap
  2. アプリケーションの Pod のログ出力を取得するには、以下のコマンドを入力します。<pod_name> は、お使いのアプリケーションの名前の接頭辞が付いた最新の Pod の名前になります。

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

Source-to-Image (S2I) メソッドを使用して、Java 11 で実行されている Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイできます。

前提条件

手順

  1. pom.xml ファイルを開き、次のように Java 設定をバージョン 11 に変更します。

    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    Copy to Clipboard Toggle word wrap
  2. Java 11 アプリケーションをパッケージ化するには、次のコマンドを入力します。

    ./mvnw clean package
    Copy to Clipboard Toggle word wrap
  3. pom.xml ファイルと同じレベルに、.s2i というディレクトリーを作成します。
  4. .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
    Copy to Clipboard Toggle word wrap
  5. 変更をリモート Git リポジトリーにコミットし、プッシュします。
  6. 次のコマンドを入力して、サポートされている OpenShift Container Platform イメージをインポートします。

    oc import-image ubi8/openjdk-11 --from=registry.access.redhat.com/ubi8/openjdk-11 --confirm
    Copy to Clipboard Toggle word wrap
    注記
    • OpenShift イメージレジストリーを使用し、同じプロジェクト内のイメージストリームからプルしている場合、Pod サービスアカウントにはすでに正しい権限が付与されているはずです。
    • 他の OpenShift Container Platform プロジェクトまたは保護されたレジストリーからイメージをプルする場合は、追加の設定手順が必要になることもあります。

      詳細は、Red Hat OpenShift Container Platform のドキュメントで イメージプルシークレットの使用 を参照してください。

    • IBM Z インフラストラクチャーにデプロイする場合は、代わりに oc import-image ubi8/openjdk-11 --from=registry.redhat.io/ubi8/openjdk-11 --confirm を入力します。このイメージの詳細は、Red Hat build of OpenJDK 11 ページを参照してください。
  7. 次のコマンドを入力して、プロジェクトのビルド、アプリケーションの作成、OpenShift Container Platform サービスのデプロイを実行します。

    oc new-app registry.access.redhat.com/ubi8/openjdk-11~<git_path> --name=<project_name>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <git_path> は、Quarkus プロジェクトをホストする Git リポジトリーへのパスです。たとえば、oc new-app registry.access.redhat.com/ubi8/openjdk-17~https://github.com/johndoe/code-with-quarkus.git --name= code-with-quarkus です。

      Git リポジトリー用に SSH キーを設定していない場合は、Git パスを指定する際に、SSH URL の代わりに HTTPS URL を使用します。

    • <project_name> はアプリケーションの名前です。

      注記

      IBM Z インフラストラクチャー上にデプロイする場合は、代わりに oc new-app ubi8/openjdk-11~<git_path> --name=<project_name> と入力します。

  8. プロジェクトの更新バージョンをデプロイするには、更新を Git リポジトリーにプッシュしてから、以下のコマンドを入力します。

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap
  9. 次のコマンドを入力して、ルートを Quarkus アプリケーションに公開します。

    oc expose svc <project_name>
    Copy to Clipboard Toggle word wrap

検証

  1. 次の子アンドを入力して、Pod のリストを表示します。

    oc get pods
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、アプリケーションの Pod のログ出力を取得します。

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る