无法使用 GraalVM 生成本机映像

2023-12-06

我试图使用 quarkus 和 GraalVM 创建一个自定义运行时 Lambda,并在此过程中(https://quarkus.io/guides/amazon-lambda),我试图为 Gradle 应用程序构建一个本机映像。我在 Windows 计算机上安装了 GraalVM(20.2.0) 和 native-image(20.2.0),以及 JAVA 11 和 Docker。 当我运行命令生成本机映像时,我收到此错误。 我使用的命令是gradlew clean build -Dquarkus.package.type=native -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:20.2.0-java11 -Dquarkus.native.container-build=true - Dquarkus.native.enable-http-url-handler=true

连接期间出错:发布http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/images/create?fromImage=quay.io%2Fquarkus%2Fubi-quarkus-native-image&tag=20.2.0-java11:打开//./pipe/docker_engine: 系统找不到指定的文件。在 Windows 上的默认守护程序配置中,必须以提升的方式运行 docker 客户端才能进行连接。此错误还可能表明 docker 守护进程未运行。 无法从本机映像二进制文件获取 GraalVM 版本。 docker:连接期间出错:发布http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/create:打开//./pipe/docker_engine:系统找不到指定的文件。在 Windows 上的默认守护程序配置中,必须以提升的方式运行 docker 客户端才能进行连接。此错误也可能表明 docker 守护进程未运行 请参阅“docker run --help”。

任务:quarkusBuild 失败

失败:构建失败并出现异常。

什么地方出了错: 任务“:quarkusBuild”执行失败。 io.quarkus.builder.BuildException:构建失败:由于错误而构建失败 [错误]:构建步骤 io.quarkus.deployment.pkg.steps.NativeImageBuildStep#build 引发异常:java.lang.RuntimeException:无法构建本机映像 在 io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:307) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:936) 在 io.quarkus.builder.BuildContext.run(BuildContext.java:277) 在org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) 在org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2046) 在 org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1578) 在 org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452) 在 java.base/java.lang.Thread.run(Thread.java:834) 在 org.jboss.threads.JBossThread.run(JBossThread.java:479) 引起原因:java.lang.RuntimeException:图像生成失败。退出代码:127 在 io.quarkus.deployment.pkg.steps.NativeImageBuildStep.imageGenerationFailed(NativeImageBuildStep.java:520) 在 io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:276)

谁能帮我解决这个问题。谢谢。


我在 Windows 中使用 Maven 包时遇到了或多或少相同的问题:

mvn clean package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:21.2-java11

(...)

error during connect: Post "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.24/images/create?fromImage=quay.io%2Fquarkus%2Fubi-quarkus-native-image&tag=21.2-jav
a11": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.

解决方案:我检查了 Docker 守护进程的状态(Windows 中的 Docker 桌面)并且它根本没有运行(可能是因为内存不足)。我重新启动了 Docker,再次尝试了 maven 包,docker pull 按预期工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 GraalVM 生成本机映像 的相关文章

随机推荐