第4章 ネイティブ実行可能ファイルにコンパイルされた Quarkus アプリケーションのデプロイ

Docker ビルドストラテジーを使用して、ネイティブ Quarkus アプリケーションを OpenShift にデプロイできます。Linux X86_64 オペレーティングシステムをターゲットとするアプリケーション用にネイティブ実行可能ファイルを作成する必要があります。ホストのオペレーティングシステムがこれとは異なる場合は、Docker や Podman などのコンテナーランタイムを使用してネイティブ Linux 実行可能ファイルを作成する必要があります。

Quarkus プロジェクトには、事前に生成された Dockerfile と手順が含まれています。カスタム Dockerfile を使用する場合は、src/main/docker ディレクトリー、またはモジュール内の任意の場所にファイルを追加する必要があります。また、quarkus.openshift.native-dockerfile プロパティーを使用して Dockerfile へのパスを設定する必要があります。

前提条件

  • Podman や Docker などの Linux X86_64 オペレーティングシステムまたは OCI (Open Container Initiative) と互換性のあるコンテナーランタイム。
  • quarkus-openshift エクステンションが含まれる Quarkus Maven プロジェクトがある。
  • oc を使用して OpenShift にログインし、プロジェクトを選択している。

手順

  1. Quarkus プロジェクトが含まれるディレクトリーに移動します。
  2. application.properties ファイルで以下のプロパティーを設定します。

    1. Docker ビルドストラテジーを設定します。

      quarkus.openshift.build-strategy=docker
    2. コンテナーランタイムを設定します。

      quarkus.native.container-build=true
    3. (オプション) 信頼されていない証明書を使用している場合は、KubernetesClient を設定します。

      quarkus.kubernetes-client.trust-certs=true
    4. (オプション) サービスを公開して OpenShift ルートを作成します。

      quarkus.openshift.expose=true
    5. (オプション) カスタム Dockerfile へのパスを設定します。

      quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>

      以下の例は、Dockerfile.custom-native へのパスを示しています。

      quarkus.openshift.jvm-dockerfile=src/main/docker/Dockerfile.custom-native
    6. (オプション) コンテナーエンジンを指定し、以下を実行します。

      • Podman を使用してネイティブ実行可能ファイルをビルドします。

        quarkus.native.container-runtime=podman
      • Docker を使用してネイティブ実行可能ファイルをビルドします。

        quarkus.native.container-runtime=docker
  3. ネイティブ実行可能ファイルをビルドし、アプリケーションをパッケージ化して OpenShift にデプロイします。

    ./mvnw clean package -Pnative -Dquarkus.kubernetes.deploy=true

検証

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

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

    oc logs -f <pod_name>