1.3. カスタムコンテナーイメージの作成
以下のいずれかの方法を使用して、Quarkus アプリケーションからコンテナーイメージを作成できます。
- 手動によるコンテナーの作成
- OpenShift Container Platform Docker ビルドを使用してコンテナーを作成
Red Hat build of Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルすると、分析と最適化中に大量のメモリーが消費されます。quarkus.native.native-image-xmx 設定プロパティーを設定して、ネイティブコンパイル時に使用されるメモリーの量を制限できます。メモリー制限を低く設定すると、ビルド時間が長くなる可能性があります。
1.3.1. 手動によるコンテナーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Linux AMD64 用のアプリケーションを使用して、コンテナーイメージを手動で作成できます。Quarkus ネイティブコンテナーを使用してネイティブイメージを生成すると、そのネイティブイメージは Linux AMD64 をターゲットとする実行可能ファイルを作成します。ホストオペレーティングシステムが Linux AMD64 ではない場合は、バイナリーを直接実行できず、手動でコンテナーを作成する必要があります。
Quarkus Getting Started プロジェクトには、以下の内容と共に src/main/docker ディレクトリーに Dockerfile.native が含まれます。
Universal Base Image (UBI)
次のリストは、Dockerfile での使用に適したイメージを示しています。
Red Hat Universal Base Image 9 (UBI9)。このベースイメージは、コンテナー化されたすべてのアプリケーション、ミドルウェア、ユーティリティーのベースレイヤーになるように設計されています。
registry.access.redhat.com/ubi9/ubi:9.5
registry.access.redhat.com/ubi9/ubi:9.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Universal Base Image 9 Minimal (UBI9-minimal)。microdnf をパッケージマネージャーとして使用する、最小化された UBI9 イメージ。
registry.access.redhat.com/ubi9-minimal:9.5
registry.access.redhat.com/ubi9-minimal:9.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow - すべての Red Hat Base イメージは、コンテナーイメージ カタログサイトで入手できます。
手順
次のいずれかの方法を使用して、ネイティブ Linux 実行可能ファイルをビルドします。
Docker:
./mvnw package -Dnative -Dquarkus.native.container-build=true
./mvnw package -Dnative -Dquarkus.native.container-build=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman:
./mvnw package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
./mvnw package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの方法を使用して、コンテナーイメージをビルドします。
Docker:
docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman
podman build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
podman build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの方法を使用して、コンテナーを実行します。
Docker:
docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .
docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman:
podman run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .
podman run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.2. OpenShift Docker ビルドを使用してコンテナーを作成する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Docker ビルドストラテジーを使用して、Quarkus アプリケーションのコンテナーイメージを作成できます。このストラテジーは、クラスター内のビルド設定を使用してコンテナーイメージを作成します。
前提条件
-
OpenShift Container Platform クラスター、およびインストールされている最新バージョンの
ocツールにアクセスできる。ocのインストールは、CLI ツール ガイドの OpenShift CLI のインストール を参照してください。 - OpenShift Container Platform API エンドポイントの URL。
手順
OpenShift CLI にログインします。
oc login -u <username_url>
oc login -u <username_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift に新規プロジェクトを作成します。
oc new-project <project_name>
oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/docker/Dockerfile.nativeファイルに基づいてビルド設定を作成します。cat src/main/docker/Dockerfile.native | oc new-build --name <build_name> --strategy=docker --dockerfile -
cat src/main/docker/Dockerfile.native | oc new-build --name <build_name> --strategy=docker --dockerfile -Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトをビルドします。
oc start-build <build_name> --from-dir .
oc start-build <build_name> --from-dir .Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを OpenShift Container Platform にデプロイします。
oc new-app <build_name>
oc new-app <build_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開するには、以下を実行します。
oc expose svc/<build_name>
oc expose svc/<build_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow