如何使用 spring-boot:build-image 嵌入 CA 证书?

ch4*_*4mp 4 buildpack spring-boot spring-boot-maven-plugin

我需要使用spring-boot:build-imageand将自签名证书添加到 spring-boot docker 映像中paketo-buildpacks/ca-certificates,但无法使其工作。

所以:

  • 在哪里添加要添加的证书?
  • 以哪种格式?
  • 如何定义paketo-buildpacks/ca-certificates绑定?
  • 是否应该提供任何额外的参数mvn spring-boot:build-image

到目前为止我尝试过但没有成功:更新 pom.xml spring-boot-maven-plugin

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <image>
                <bindings>
                    <binding>${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates</binding>
                </bindings>
            </image>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>build-image</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

来自${basedir}文件夹:

mkdir bindings
mkdir bindings/ca-certificates
echo "ca-certificates" > bindings/ca-certificates/type
cp ~/.ssh/mycert.pem bindings/ca-certificates/
mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)

编辑:按照 @nick-valanos 的建议,将图像绑定配置直接移动到 boot-plugin 下(而不是在特定执行中)并解决了问题。

ch4*_*4mp 8

我得到了它。上面的 Maven 配置适用于 Mavenpackage目标,而不是spring-boot:build-image.

这是完整的过程:

  • 在maven项目根目录创建bindings/ca-certificates文件夹并添加到其中:
    • type文件只包含ca-certificates
    • 您想要嵌入的 CA 证书(PEM 格式)
  • 在 pom.xml 中,按照我的问题中的配置添加图像绑定的build-image执行spring-boot-maven-plugin${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates
  • 跑步mvn clean package


小智 5

我也遇到了同样的问题,我发现你的帖子非常有帮助。经过一番尝试后,我发现您的配置也可以spring-boot:build-image与以下更改一起使用:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <image>
            <bindings>
                <binding>${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates</binding>
            </bindings>
        </image>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

如您所见,我<configuration>立即添加了<plugin>. 这样,它似乎可以通过spring-boot:build-image