我编写了一个小型 quarkus 应用程序,并使用以下命令创建了一个本机可执行文件:
mvn package -Pnative -Dquarkus.native.container-build=true
该过程工作正常(我可以将应用程序部署在 docker 容器内,并且一切正常),但我不明白打包过程(使用参数 -Dquarkus.native.container-build=true )的作用在幕后(例如,我的电脑上没有 GraalVm;该进程如何创建本机映像?该进程是否使用 graal“启动”容器,将 java 打包到容器内,然后返回工件?)。
在网上搜索时,我只找到了为容器创建本机映像的教程,但没有解释该过程是如何工作的。
感谢您对在哪里可以找到有用信息的任何解释或建议。
如Quarkus 文档中所述,您需要安装并配置 GraalVM 才能编译为本机。
Mandrel 或 GraalVM 已正确安装和配置
您还需要一个工作 C 环境
拥有一个可用的 C 开发环境意味着什么?
在 Linux 上,您将需要 GCC、glibc 和 zlib 标头。
...
在 macOS 上,XCode 提供了所需的依赖项
...
在 Windows 上,您需要安装 Visual Studio 2017 Visual C++ 构建工具
您还可以告诉 quarkus 您没有 GraalVM(并且不想安装它)。 Quarkus 将使用您的容器运行时来获取完成其任务所需的内容。 只需添加此参数即可:
-Dquarkus.native.container-build=true
是否应该使用容器运行时来完成此构建。除非还设置了container-runtime,否则默认使用docker。如果 docker 不可用或者是 podman 的别名,则将使用 podman 作为默认值。
请参阅参考了解更多信息
找到这方面的文档并不容易,只能看到它在控制台上执行的命令并查看源代码