Deploying {project-name} applications compiled to native executables
Docker ビルド戦略を使用して、ネイティブ実行可能ファイルにコンパイルされたネイティブ Quarkus アプリケーションを OpenShift にデプロイできます。
サポートされているオペレーティングシステムをターゲットとし、アーキテクチャーに一致するアプリケーションのネイティブ実行可能ファイルを作成する必要があります。これは、Windows でビルドしている場合、コンテナーランタイム (例: Docker や Podman) を使用してネイティブ Linux 実行可能ファイルを作成することを意味します。
Quarkus プロジェクトには、手順が記載された事前に生成された Dockerfile が含まれています。カスタム Dockerfile を使用したい場合、ファイルを src/main/docker ディレクトリまたはモジュール内の任意の場所に追加します。さらに、複数の Docker ファイルがあり、それらを切り替えたい場合は、quarkus.openshift.native-dockerfile プロパティーを使用して、使用する Dockerfile へのパスを設定します。
|
このガイドでは、Maven を使用した Quarkus プロジェクトを例として使用して、この戦略について説明します。 |
前提条件
-
サポートされているオペレーティングシステム、または Podman や Docker など、Open Container Initiative (OCI) 互換のコンテナーランタイム。
-
Quarkus Maven プロジェクトに
quarkus-openshiftエクステンションが含まれていること。 -
OpenShift クラスタにアクセスでき、
ocCLIツールの最新互換バージョンがインストールされていること -
正しい OpenShift プロジェクトの名前空間で作業していること
手順
-
application.properties設定ファイルで Docker ビルドストラテジーを設定します:quarkus.openshift.build-strategy=docker -
コンテナーベースのネイティブビルドを有効にする:
quarkus.native.container-build=true -
オプション: 環境に基づいて、
application.propertiesファイルに以下のプロパティーを設定します:-
信頼されていない証明書を使用している場合は、
KubernetesClientの証明書の信頼を有効にします:quarkus.kubernetes-client.trust-certs=true -
サービスを公開し、 OpenShift ルートを作成するには、以下のプロパティを設定します:
quarkus.openshift.route.expose=true -
事前に生成された Dockerfile の代わりにカスタム Dockerfile を使用するには、カスタム Dockerfile へのパスを設定します:
quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>例えば、
Dockerfile.custom-nativeという名前のカスタム Dockerfile を指定するには:quarkus.openshift.native-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.openshift.deploy=true
検証
-
イメージストリームとサービスリソースが作成され、アプリケーションがデプロイされていることを確認します。OpenShift Web コンソールまたは以下の OpenShift コマンドラインインターフェース (CLI) コマンドを使用します:
oc get is (1) oc get pods (2) oc get svc (3)1 作成されたイメージストリームを一覧表示します。 2 現在の OpenShift プロジェクトに関連するポッドを一覧表示します。 3 Kubernetesサービスをリストアップします。
-
アプリケーションの Pod のログ出力を取得するには、
<pod_name>(アプリケーション名の前に付加された最新の Pod の名前) を指定して次のコマンドを実行します:oc logs -f <pod_name>