Spring Boot 无法在Windows中使用GraalVM Docker映像创建.exe

x33g5p2x  于 2022-12-23  发布在  Spring
关注(0)|答案(1)|浏览(198)

Windows 10环境中,使用IntelliJ Idea,我有一个使用 * bootify * 创建的示例Spring Boot应用程序,名为Bootifytwo,位于C:\CODIGO\IDEA_PROJECTS\bootifytwo文件夹中。
在上述应用程序的pom. xml中,我配置了以下依赖项

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
</plugin>

我的目的是使用GraalVM生成bootifytwo.exe并能够正确运行它。
为此,我从Oracle存储库下载了以下Docker映像和GraalVM;并执行了以下命令:

docker pull container-registry.oracle.com/graalvm/community:ol8-java17-22.3.0-b1

docker images

docker run -it --rm container-registry.oracle.com/graalvm/community:ol8-java17-22.3.0-b1 bash

java -version

gu install native-image

native-image --version

在我尝试更改到我的项目文件夹之前,一切都工作正常。

只要我不能更改到我的项目文件夹(cd C:\CODIGO\IDEA_PROJECTS\bootifytwo),我就不能使用以下内容创建. exe:

    • 一月一日**

最后,在目标文件夹(cd C:\CODIGO\IDEA_PROJECTS\bootifytwo\target)中找到自己,并启动所需的bootifytwo. exe
我希望在这个复杂的路径中得到帮助。(我不知道是否需要定义GRAALVM_HOME变量,或者Map...)

liwlm1x9

liwlm1x91#

生成.exe的解决方案是:
将应用程序文件夹复制到(将来的)卷目标:
在我的例子中:从C:\CODIGO\IDEA_PROJECTS\bootifytwo到C:\卷-Docker\卷-graalvm-one\bootifytwo
然后启动以下命令:

docker run --name container-graalvm-one -v "C:\Volumenes-Docker\vol-graalvm-one:/app" -it container-registry.oracle.com/graalvm/community:ol8-java17-22.3.0-b1 bash

gu install native-image

cd bootifytwo

. ./mvnw native:compile -Pnative

然后,我能够启动应用程序与:

./bootifytwo

但是在与我的DB连接时失败(那也是“在”另一个Docker/postgres容器内)

相关问题