【问题标题】:Bitbucket Pipeline - Fails to build Quarkus native image (Out of Memory)Bitbucket 管道 - 无法构建 Quarkus 原生映像(内存不足)
【发布时间】:2021-11-21 16:46:44
【问题描述】:

我正在尝试设置一个 Bitbucket 管道来构建我的应用的本机 Quarkus 映像,但构建失败

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

我增加了管道的大小以使用双倍内存(8 GB 而不是 4 GB)并尝试为 docker 提供更多内存,但没有任何成功。我已将数据库层从 mongodb 更改为 postgres。更改后,构建失败并出现上述错误。我的bitbucket-pipelines.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

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

【问题讨论】:

  • 你可以尝试设置-Dquarkus.native.native-image-xmx=5GB吗?

标签: quarkus bitbucket-pipelines graalvm


【解决方案1】:

Graalvm 将获取尽可能多的内存,有时甚至是外部限制。因此,即使你给它更多,它也会一直失败。

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

您按照错误消息和@geoand 的建议设置-Dquarkus.native.native-image-xmx=5GB

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-15
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2021-12-11
    • 2021-06-13
    相关资源
    最近更新 更多