1.5. ネイティブ実行可能ファイルにコンパイルされた Red Hat build of Quarkus アプリケーションをデプロイする
Docker ビルドストラテジーを使用して、ネイティブ Red Hat build of Quarkus アプリケーションを OpenShift Container Platform にデプロイできます。Linux AMD64 オペレーティングシステムをターゲットとするアプリケーションのネイティブ実行可能ファイルを作成する必要があります。ホストオペレーティングシステムがこれと異なる場合は、Docker や Podman などのコンテナーランタイムを使用してネイティブ Linux 実行可能ファイルを作成します。
Quarkus プロジェクトには、事前に生成された Dockerfile と手順が含まれています。カスタム Dockerfile を使用するには、src/main/docker ディレクトリー、またはモジュール内の任意の場所にファイルを追加し、quarkus.openshift.native-dockerfile プロパティーを使用して Dockerfile へのパスを設定します。
前提条件
- Linux AMD64 システムまたは Open Container Initiative (OCI) と互換性のあるコンテナーランタイム (Podman や Docker など) がある。
-
quarkus-openshiftエクステンションが含まれる Quarkus Maven プロジェクトがある。 - 必要な OpenShift Container Platform プロジェクトに切り替える で説明されているとおり、正しい OpenShift プロジェクト namespace で作業している。
手順
application.properties設定ファイルで Docker ビルドストラテジーを設定します。quarkus.openshift.build-strategy=dockerコンテナーランタイムを設定します。
quarkus.native.container-build=trueオプション: 環境で必要な場合、
application.propertiesファイルに次のプロパティーを設定します。信頼されていない証明書を使用している場合は、
KubernetesClientプロパティーを設定します。quarkus.kubernetes-client.trust-certs=trueサービスを公開して OpenShift Container Platform ルートを作成します。
quarkus.openshift.route.expose=trueカスタム Dockerfile へのパスを設定します。
quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>以下の例は、
Dockerfile.custom-nativeへのパスを示しています。quarkus.openshift.jvm-dockerfile=src/main/docker/Dockerfile.custom-nativeコンテナーエンジンを指定します。
Podman を使用してネイティブ実行可能ファイルをビルドします。
quarkus.native.container-runtime=podmanDocker を使用してネイティブ実行可能ファイルをビルドします。
quarkus.native.container-runtime=docker
最後に、ネイティブ実行可能ファイルをビルドしてパッケージ化し、アプリケーションを OpenShift Container Platform にデプロイします。
./mvnw clean package -Pnative -Dquarkus.openshift.deploy=true
検証
OpenShift Web コンソールを使用して、イメージストリームとサービスリソースが作成され、Quarkus アプリケーションがデプロイされていることを確認します。もしくは、次の OpenShift Container Platform コマンドラインインターフェイス (CLI) コマンドを実行できます。
oc get is1 oc get pods2 oc get svc3
以下のコマンドを入力して、アプリケーションの Pod のログ出力を取得します。この場合の
<pod_name>は、使用しているアプリケーションの名前が接頭辞として追加された最新の Pod の名前になります。oc logs -f <pod_name>