第5章 OpenShift Serverless サービスとしてネイティブ実行可能ファイルにコンパイルされた Quarkus アプリケーションのデプロイ


アプリケーション開発者は、OpenShift Serverless Knative Serving を使用して、ネイティブ実行可能ファイルにコンパイルされた Quarkus アプリケーションを Red Hat OpenShift Container Platform にデプロイできます。

OpenShift Serverless Knative Serving を使用することで、読み込むサイズに応じてサービスをスケールアップまたはスケールダウンすることができます。現在リクエストされていないサービスをスケールダウンすることで、メモリー機能を向上させることができます。

注記

Quarkus をネイティブ実行可能ファイルとして、または OpenJDK を使用する Java アプリケーションとして実行することができます。ネイティブ実行可能ファイルの場合は、Red Hat UBI 8 minimal イメージを使用します。OpenJDK の場合は、Red Hat 8 UBI Java イメージを使用します。

ネイティブサーバーレスアプリケーションをデプロイする場合は、ネイティブビルド、コンテナービルド、およびデプロイメントの手順を別々にすることができます。以下の手順では、サーバーレスアプリケーションとして継続的インテグレーション (CI) で Quarkus ネイティブアプリケーションのコンテナーイメージをデプロイする方法を説明しています。

前提条件

  • OpenShift Serverless Operator がインストールされていること。
  • OpenShift Knative Serving がインストールされていること。
  • ネイティブコンパイルの場合は、Podman または Docker などのコンテナー環境が必要。
  • kn CLI ツールがインストールされていること。

手順

  1. Quarkus プロジェクトが含まれるディレクトリーに移動します。
  2. 以下のいずれかの方法を使用して、Linux 実行可能ファイルをビルドします。

    1. Docker を使用する場合

      ./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=registry.access.redhat.com/quarkus/mandrel-20-rhel8:20.3
      Copy to Clipboard Toggle word wrap
    2. Podman を使用する場合

      ./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman -Dquarkus.native.builder-image=registry.access.redhat.com/quarkus/mandrel-20-rhel8:20.3
      Copy to Clipboard Toggle word wrap
  3. src/main/docker/Dockerfile.native ファイルを開き、<image_name> パラメーターおよび <version> パラメーターを設定します。

    1. Docker を使用する場合

      docker build -f src/main/docker/Dockerfile.native -t <image_name>:<version> .
      Copy to Clipboard Toggle word wrap
    2. Podman を使用する場合

      podman build -f src/main/docker/Dockerfile.native -t <image_name>:<version>.
      Copy to Clipboard Toggle word wrap
  4. CI 環境および OpenShift 環境がアクセスできるリポジトリーにコンテナーをプッシュします。ここで、<registry> はレジストリーの URL になります。

    1. Docker を使用する場合

      docker tag <image_name>:<version> <registry>/<image_name>:<version>
      docker push <registry>/<image_name>:<version>
      Copy to Clipboard Toggle word wrap
    2. Podman を使用する場合

      podman tag <image_name>:<version> <registry>/<image_name>:<version>
      podman push <registry>/<image_name>:<version>
      Copy to Clipboard Toggle word wrap
  5. OpenShift CLI (oc) にログインします。

    oc login
    Copy to Clipboard Toggle word wrap
  6. 新しい OpenShift プロジェクトを作成するには、以下のコマンドを実行します。このコマンドの <project_name> は、新規プロジェクトの名前に置き換えます。

    oc new-project <project_name>
    Copy to Clipboard Toggle word wrap
  7. OpenShift Serverless CLI (kn) を使用して、サーバーレスアプリケーションとしてコンテナーをデプロイするには、以下のコマンドを入力します。<service_name> は、お使いのサービスの名前に置き換えます。

    kn service create <service_name> --image REPOSITORY/<image_name>:<version>
    Copy to Clipboard Toggle word wrap
  8. サービスの準備ができていることを確認するには、以下のコマンドを入力します。

    kn service list <service_name>
    Copy to Clipboard Toggle word wrap

    サービスの準備ができている場合は、「READY」と呼ばれる列の出力に true と表示されます。

    注記

    イメージがプルダウンされて準備ができたときではなく、必要なコンポーネントが作成されるときに、kn service コマンドは true を返します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat