1.2. 创建自定义容器镜像
您可以使用以下方法之一从 Quarkus 应用程序创建容器镜像:
- 手动创建容器
- 使用 OpenShift Container Platform Docker 构建创建容器
					将红帽构建的 Quarkus 应用程序编译到原生可执行文件,会在分析和优化过程中消耗大量内存。您可以通过设置 quarkus.native.native-image-xmx 配置属性来限制原生编译过程中使用的内存量。设置较低的内存限值可能会增加构建时间。
				
1.2.1. 手动创建容器
您可以使用应用程序为 Linux AMD64 手动创建容器镜像。当您使用 Quarkus Native 容器生成原生镜像时,原生镜像会创建一个以 Linux AMD64 为目标的可执行文件。如果您的主机操作系统与 Linux AMD64 不同,则无法直接运行二进制文件,您需要手动创建容器。
					您的 Quarkus Getting Started 项目在 src/main/docker 目录中包含一个 Dockerfile.native,其内容如下:
				
通用基础镜像(UBI)
以下列表显示适合用于 Dockerfile 的镜像:
- Red Hat Universal Base Image 8 (UBI8)。此基础镜像设计为您的所有容器化应用程序、中间件和实用程序的基础层。 - registry.access.redhat.com/ubi8/ubi:8.10 - registry.access.redhat.com/ubi8/ubi:8.10- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Red Hat Universal Base Image 8 Minimal (UBI8-minimal)。剥离使用 microdnf 作为软件包管理器的 UBI8 镜像。 - registry.access.redhat.com/ubi8/ubi-minimal:8.10 - registry.access.redhat.com/ubi8/ubi-minimal:8.10- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 所有红帽基础镜像都位于容器镜像目录站点。https://catalog.redhat.com/search?gs&q=UBI&searchType=containers
流程
- 使用以下方法之一构建原生 Linux 可执行文件: - docker: - ./mvnw package -Dnative -Dquarkus.native.container-build=true - ./mvnw package -Dnative -Dquarkus.native.container-build=true- Copy 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=podman- Copy 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.2.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