#quarkus #bitbucket-pipelines #graalvm
Вопрос:
Я пытаюсь настроить конвейер Bitbucket для создания собственного образа Quarkus моего приложения, но сборка завершается неудачно с
Вызвано: исключение java.lang.RuntimeException: Не удалось создать изображение. Код выхода был 137, что указывает на ошибку нехватки памяти. Рассмотрите возможность увеличения значения Xmx для генерации собственных изображений, установив параметр «quarkus.свойство native.native-изображение-xmx»
Я увеличил размер конвейера вдвое, чтобы увеличить объем памяти (8 ГБ вместо 4 ГБ), и попытался предоставить докеру больше памяти, но безуспешно. Я изменил уровень базы данных с 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
Могу ли я задать другие параметры, чтобы выделить больше памяти для сборки?
Комментарии:
1. Можете ли вы попробовать установить
-Dquarkus.native.native-image-xmx=5GB
?
Ответ №1:
Graalvm захватит столько памяти, сколько сможет получить доступ, и иногда это его внешний предел. Таким образом, даже если вы дадите ему больше, он будет продолжать терпеть неудачу.
Таким образом, может возникнуть вопрос о фактическом ограничении JVM, чтобы graalvm начала сбор мусора раньше.
Вы выполняете эту настройку -Dquarkus.native.native-image-xmx=5GB
в соответствии с сообщением об ошибке и @geoand.