我写了一个小的quarkus应用程序,并使用以下命令创建了一个本地可执行文件:
mvn package -Pnative -Dquarkus.native.container-build=true
这个过程运行得很好(我能够在docker容器中部署应用程序,一切都很好),但我不明白打包过程(带有参数-Dquarkus.native.container-build=true)在幕后做了什么(例如,我的PC上没有GraalVm;进程如何创建本机映像?进程是否用graal“启动”容器,将Java打包到容器中,然后返回工件?)。
在网上搜索,我只找到了为容器创建本机映像的教程,这些教程没有解释这个过程是如何工作的。
感谢您的任何解释或建议在哪里可以找到有用的信息。
1条答案
按热度按时间t40tm48m1#
经典方式
如Quarkus Documentation中所述,您需要安装和配置GraalVM,以便能够编译为本机。
已正确安装和配置芯轴或GraalVM
您还需要一个可工作的C环境
拥有一个工作的C开发环境意味着什么?
在Linux上,您将需要GCC以及glibc和zlib头文件。
...
在macOS上,XCode提供了所需的依赖项
...
在Windows上,您需要安装Visual Studio 2017 Visual C++生成工具
机器上没有GraalVM(但仅限Linux)
你也可以告诉quarkus你没有GraalVM(并且不想麻烦安装它)。Quarkus将使用你的容器运行时来获取它执行任务所需的内容。只需添加以下参数:
如果此构建应该使用容器运行时完成。除非还设置了container-runtime,否则默认情况下将使用docker。如果docker不可用或者是podman的别名,则将使用podman作为默认值。
更多信息见参考文献