第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 にログインし、プロジェクトを選択している。- OpenShift プロジェクトの namespace を確認するには、OpenShift プロジェクトの namespace の確認 を参照してください。
手順
- Quarkus プロジェクトが含まれるディレクトリーに移動します。
application.properties
ファイルで以下のプロパティーを設定します。Docker ビルドストラテジーを設定します。
quarkus.openshift.build-strategy=docker
コンテナーランタイムを設定します。
quarkus.native.container-build=true
(オプション) 信頼されていない証明書を使用している場合は、
KubernetesClient
を設定します。quarkus.kubernetes-client.trust-certs=true
(オプション) サービスを公開して OpenShift ルートを作成します。
quarkus.openshift.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=podman
Docker を使用してネイティブ実行可能ファイルをビルドします。
quarkus.native.container-runtime=docker
ネイティブ実行可能ファイルをビルドし、アプリケーションをパッケージ化して OpenShift にデプロイします。
./mvnw clean package -Pnative -Dquarkus.kubernetes.deploy=true
検証
現在の OpenShift プロジェクトに関連付けられている Pod のリストを表示します。
oc get pods
アプリケーションの Pod のログ出力を取得するには、以下のコマンドを入力します。
<pod_name>
は、お使いのアプリケーションの名前の接頭辞が付いた最新の Pod の名前になります。oc logs -f <pod_name>