maven Quarkus原生容器构建

zrfyljdw  于 2023-03-22  发布在  Maven
关注(0)|答案(1)|浏览(209)

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

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

这个过程运行得很好(我能够在docker容器中部署应用程序,一切都很好),但我不明白打包过程(带有参数-Dquarkus.native.container-build=true)在幕后做了什么(例如,我的PC上没有GraalVm;进程如何创建本机映像?进程是否用graal“启动”容器,将Java打包到容器中,然后返回工件?)。
在网上搜索,我只找到了为容器创建本机映像的教程,这些教程没有解释这个过程是如何工作的。
感谢您的任何解释或建议在哪里可以找到有用的信息。

t40tm48m

t40tm48m1#

经典方式

Quarkus Documentation中所述,您需要安装和配置GraalVM,以便能够编译为本机。
已正确安装和配置芯轴或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作为默认值。
更多信息见参考文献

相关问题