部署编译为原生可执行文件的 Quarkus 应用程序
您可以使用 Docker 构建策略将编译为原生可执行文件的原生 Quarkus 应用程序部署到 OpenShift。
您必须为您的应用程序创建一个针对支持的操作系统并匹配架构的原生可执行文件。 这意味着,如果您在 Windows 上构建,您可以通过使用容器运行时(例如,Docker 或 Podman)来创建原生 Linux 可执行文件。
您的 Quarkus 项目包含带有指令的预生成 Dockerfile。 如果您想使用自定义 Dockerfile,请将文件添加到 src/main/docker
目录或模块内的任何位置。 此外,如果您想拥有多个 Docker 文件并在它们之间切换,请使用 quarkus.openshift.native-dockerfile
属性设置您首选 Dockerfile 的路径。
本指南通过使用带有 Maven 的 Quarkus 项目作为示例项目来描述此策略。 |
先决条件
-
支持的操作系统或与 Open Container Initiative (OCI) 兼容的容器运行时,例如 Podman 或 Docker。
-
您有一个包含
quarkus-openshift
扩展的 Quarkus Maven 项目。 -
您可以访问 OpenShift 集群以及已安装的最新兼容版本的
oc
CLI 工具。 -
您正在正确的 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
的自定义 Dockerfilequarkus.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