如何为 `mvn spring-boot:build-image` 覆盖 paketo-buildpacks/bellsoft-liberica

Raj*_*gan 3 buildpack spring-boot paketo

我想使用 Spring Boot 的构建映像目标创建具有不同 JVM 基础的 OCI 映像。但是,我很难找到覆盖 JVM 的文档。谁能告诉我如何只覆盖 JVM 变体“paketo-buildpacks/adoptium”?

我的 pom 文件如下所示。

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <builder>jfrog.mycompany.com/paketobuildpacks/builder:base</builder>
                    <runImage>jfrog.mycompany.com/paketobuildpacks/run:base-cnb</runImage>
                </image>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

我尝试检查 Spring boot 插件以及 paketo 文档。但没有直接的示例或说明。

Dan*_*usa 5

可以在此处找到使用不同 JVM 供应商的说明。

https://paketo.io/docs/howto/java/#use-an-alternative-jvm

官方说明pack没有使用 Spring Boot 构建工具,但过程是相同的。您需要覆盖构建包顺序并将首选 JVM 供应商的构建包设置为首先运行。第一个运行的 JVM 供应商构建包将安装 JRE/JDK,其他任何构建包都不会执行任何操作。

以下是使用 Maven Spring Boot 构建工具设置自定义构建包顺序的文档。

https://docs.spring.io/spring-boot/docs/3.0.6/maven-plugin/reference/htmlsingle/#build-image.examples.buildpacks

例子:

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <buildpacks>
                            <buildpack>gcr.io/paketo-buildpacks/adoptium</buildpack>
                            <buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
                        </buildpacks>
                    </image>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

应该可以做到这一点。当您的构建运行时,您应该会看到自定义 JVM 供应商的构建包首先运行并安装 JRE/JDK。