使用 Quarkus,如何在 docker 图像中构建原生图像(使用 Kotlin 和 Gradle)

With Quarkus, how do I build a native image in a docker image (with Kotlin and Gradle)

Quarkus 文档解释了如何使用 Maven 构建 docker 图像。但我正在使用 Gradle 和 Kotlin。我正在尝试弄清楚如何执行这些步骤:

FROM quay.io/quarkus/centos-quarkus-maven:19.2.1 AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
USER root
RUN chown -R quarkus /usr/src/app
USER quarkus
RUN mvn -f /usr/src/app/pom.xml -Pnative clean package

首先,我想我想要一个具有 gradle 而不是 Maven 的图像(quay.io 似乎没有)。然后我必须弄清楚我还需要复制什么(而不是 pom.xml)也许 build.gradlesettings.gradlegradle.properties?其次,我相信这个图像也包含 GraalVM。所以我不确定我能在那里做什么。

需要使用 Maven 吗?我真的真的不想。

尽管文档和构建器图像是针对 Maven 量身定制的,但是如果您执行以下操作,则可以使用 Gradle:

FROM quay.io/quarkus/centos-quarkus-maven:19.2.1 AS build
COPY gradlew /usr/src/app
COPY gradle /usr/src/app
COPY src /usr/src/app/src
COPY build.gradle /usr/src/app
COPY settings.gradle /usr/src/app
USER root
RUN chown -R quarkus /usr/src/app
USER quarkus
RUN ./gradlew build

根据您的 .dockerignore 包含的内容,您可能还需要对其进行调整(或者只是将其删除)