Quarkus 原生容器构建

问题描述 投票:0回答:2

我编写了一个小型 quarkus 应用程序,并使用以下命令创建了一个本机可执行文件:

mvn package -Pnative -Dquarkus.native.container-build=true

该过程工作正常(我可以将应用程序部署在 docker 容器内,并且一切正常),但我不明白打包过程(使用参数 -Dquarkus.native.container-build=true )的作用在幕后(例如,我的电脑上没有 GraalVm;该进程如何创建本机映像?该进程是否使用 graal“启动”容器,将 java 打包到容器内,然后返回工件?)。
在网上搜索时,我只找到了为容器创建本机映像的教程,但没有解释该过程是如何工作的。
感谢您对在哪里可以找到有用信息的任何解释或建议。

maven quarkus graalvm
2个回答
0
投票

经典方式

Quarkus 文档中所述,您需要安装并配置 GraalVM 才能编译为本机。

Mandrel 或 GraalVM 已正确安装和配置

您还需要一个工作 C 环境

拥有一个可用的 C 开发环境意味着什么?

在 Linux 上,您将需要 GCC、glibc 和 zlib 标头。

...

在 macOS 上,XCode 提供了所需的依赖项

...

在 Windows 上,您需要安装 Visual Studio 2017 Visual C++ 构建工具

您的计算机上没有 GraalVM(但仅限 Linux)

您还可以告诉 quarkus 您没有 GraalVM(并且不想安装它)。 Quarkus 将使用您的容器运行时来获取完成其任务所需的内容。 只需添加此参数即可:

-Dquarkus.native.container-build=true

是否应该使用容器运行时来完成此构建。除非还设置了container-runtime,否则默认使用docker。如果 docker 不可用或者是 podman 的别名,则将使用 podman 作为默认值。

请参阅参考了解更多信息


0
投票
  1. Quarkus 创建一个具有必要依赖项(包括 GraalVM)的 Docker 容器,以构建本机可执行文件。
  2. Quarkus 构建过程将应用程序的源代码和依赖项复制到容器中。
  3. 容器使用 GraalVM 构建本机可执行文件。
  4. 构建完成后,容器会将本机可执行文件复制回主机。
  5. 然后将本机可执行文件打包到 JAR 文件或独立可执行文件中,具体取决于配置。
  6. 现在 Linux 本机应用程序已位于主机上,可以使用它来创建运行时的 docker 映像

找到这方面的文档并不容易,只能看到它在控制台上执行的命令并查看源代码

© www.soinside.com 2019 - 2024. All rights reserved.