当前位置: 首页 > 知识库问答 >
问题:

Bitbucket管道-无法构建Quarkus本机映像(内存不足)

谷永贞
2023-03-14

我正在尝试设置Bitbucket管道以构建我的应用程序的本机Quarkus图像,但构建失败

原因:java。lang.RuntimeException:映像生成失败。退出代码为137,表示内存不足错误。考虑通过设置“quarkus.native.native image Xmx”属性来增加本机图像生成的Xmx值

我使用两倍的内存(8 GB而不是4 GB)增加了管道的大小,并试图给docker更多内存,但没有成功。我已经将数据库层从mongodb更改为postgres。更改后,生成失败,出现上述错误。Mybitbucket管道。yml:

pipelines:
  branches:
    develop:
      - step:
          name: Build Native Image
          image: quay.io/quarkus/ubi-quarkus-native-image:21.2-java11
          services:
            - docker
          size: 2x
          caches:
            - maven
          script:
            - ./mvnw package -Pnative
          artifacts:
            - target/*-runner

definitions:
  service:
    docker:
      memory: 7128

我可以设置其他参数来为构建分配更多内存吗?


共有1个答案

雍志新
2023-03-14

Graalvm将尽可能多地获取内存,有时甚至超出外部限制。因此,即使你付出更多,它也会不断失败。

因此,这可能是一个实际约束JVM的问题,以便graalvm能够更快地开始垃圾收集。

您可以设置-Dquarkus。出生地的本机图像xmx=5GB,如错误消息和@geoand所示。

 类似资料:
  • 有可能在Java 16下构建本机Quarkus映像吗?没有找到任何操作说明。 不知何故,这应该是可能的,因为Oracle发布了对Java16的GraalVM支持(https://www.graalvm.org/release-notes/21_1/)

  • 我有以下简化设置: 4)应用程序.属性 当我使用本机maven配置文件(mvn clean package-pnative)运行该文件时,我得到: 使用--report-unsupport-elements-at-runtime运行它也没有太大帮助。当我删除MyEntity类时,它在Mac+GRAALVM-CE-Java11-20.0.0上成功地编译为本机可执行文件

  • 我在这里将Micronaut应用程序作为Graalvm本地映像进行试用。

  • 我正在尝试使用Github自托管运行程序为我的qukus应用程序构建原生映像。 这对我来说在Github托管的跑步者上非常有用,但我想在自托管的跑步者上这样做,这样我们就不会浪费Github的预算。 当我更新我的工作流程以使用自我托管的跑步者时,我开始遇到这个奇怪的异常。 我使用的是GraalVM 22.0.0.2、Java 11.0.14、Maven 3.8.4和Quarkus 2.7.5 我尝

  • 我正在尝试从Apple M1 Macbook为x86平台的本机docker容器构建Quarkus 2.8.0,并将其部署在Linuxamd64 Portainer中。我能够构建本机映像,并在检查文件时 输出为: 然后我使用文件构建docker容器,并使用以下命令推送到我的本地注册表: 构建过程在没有错误或警告的情况下成功完成,当我在本地注册表中检查时,容器被创建。 当我试图用Portainer在我

  • 我已经成功地用Quarkus/Graal构建了一个本机映像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(堆芯转储)”消息而崩溃。如何获得有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时传递? 我使用的是GraalVM版本20.2.0(Java版本11.0.8) 任何帮助都是非常感激的。 谢谢