编辑此页面

部署编译为原生可执行文件的 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 项目命名空间中工作。

步骤

  1. 在您的 application.properties 配置文件中设置 Docker 构建策略

    quarkus.openshift.build-strategy=docker
  2. 启用基于容器的原生构建

    quarkus.native.container-build=true
  3. 可选:根据您的环境在 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
  4. 最后,构建原生可执行文件,打包您的应用程序并将其部署到 OpenShift

    ./mvnw clean package -Pnative -Dquarkus.openshift.deploy=true

验证

  1. 验证是否已创建镜像流和服务资源,并且应用程序已部署。 使用 OpenShift Web 控制台或以下 OpenShift 命令行界面 (CLI) 命令

    oc get is (1)
    oc get pods (2)
    oc get svc (3)
    1 列出已创建的镜像流。
    2 列出与您当前的 OpenShift 项目关联的 Pod。
    3 列出 Kubernetes 服务。
  1. 要获取您的应用程序 Pod 的日志输出,请运行以下命令,其中 <pod_name> 是最新的 Pod 的名称,并以您的应用程序的名称作为前缀

    oc logs -f <pod_name>

相关内容