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,其内容如下:

FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10
WORKDIR /work/
RUN chown 1001 /work \
    && chmod "g+rwX" /work \
    && chown 1001:root /work
COPY --chown=1001:root target/*-runner /work/application

EXPOSE 8080
USER 1001

ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]
Copy to Clipboard Toggle word wrap
注意

通用基础镜像(UBI)

以下列表显示适合用于 Dockerfile 的镜像:

  • Red Hat Universal Base Image 8 (UBI8)。此基础镜像设计为您的所有容器化应用程序、中间件和实用程序的基础层。

    registry.access.redhat.com/ubi8/ubi:8.10
    Copy to Clipboard Toggle word wrap
  • Red Hat Universal Base Image 8 Minimal (UBI8-minimal)。剥离使用 microdnf 作为软件包管理器的 UBI8 镜像。

    registry.access.redhat.com/ubi8/ubi-minimal:8.10
    Copy to Clipboard Toggle word wrap
  • 所有红帽基础镜像都位于容器镜像目录站点。https://catalog.redhat.com/search?gs&q=UBI&searchType=containers

流程

  1. 使用以下方法之一构建原生 Linux 可执行文件:

    • docker:

      ./mvnw package -Dnative -Dquarkus.native.container-build=true
      Copy to Clipboard Toggle word wrap
    • Podman:

      ./mvnw package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
      Copy to Clipboard Toggle word wrap
  2. 使用以下方法之一构建容器镜像:

    • docker:

      docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
      Copy to Clipboard Toggle word wrap
    • Podman

      podman build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
      Copy to Clipboard Toggle word wrap
  3. 使用以下方法之一运行容器:

    • docker:

      docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .
      Copy to Clipboard Toggle word wrap
    • Podman:

      podman run -i --rm -p 8080:8080 quarkus-quickstart/getting-started .
      Copy to Clipboard Toggle word wrap

1.2.2. 使用 OpenShift Docker 构建创建容器

您可以使用 OpenShift Container Platform Docker 构建策略为 Quarkus 应用程序创建容器镜像。此策略使用集群中的构建配置创建容器镜像。

先决条件

  • 您可以访问 OpenShift Container Platform 集群并安装最新版本的 oc 工具。有关安装 oc 的详情,请参考 CLI 工具指南中的安装 OpenShift CLI
  • OpenShift Container Platform API 端点的 URL。

流程

  1. 登录到 OpenShift CLI:

    oc login -u <username_url>
    Copy to Clipboard Toggle word wrap
  2. 在 OpenShift 中创建一个新项目:

    oc new-project <project_name>
    Copy to Clipboard Toggle word wrap
  3. 根据 src/main/docker/Dockerfile.native 文件创建一个构建配置:

    cat src/main/docker/Dockerfile.native | oc new-build --name <build_name> --strategy=docker --dockerfile -
    Copy to Clipboard Toggle word wrap
  4. 构建项目:

    oc start-build <build_name> --from-dir .
    Copy to Clipboard Toggle word wrap
  5. 将项目部署到 OpenShift Container Platform:

    oc new-app <build_name>
    Copy to Clipboard Toggle word wrap
  6. 公开服务:

    oc expose svc/<build_name>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat