首页 > 解决方案 > 如何使用 spring-boot:build-image 嵌入 CA 证书?

问题描述

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

所以:

到目前为止我没有成功的尝试:更新 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>

${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

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

标签: spring-bootspring-boot-maven-pluginbuildpack

解决方案


我知道了。上面的 Maven 配置是针对 Mavenpackage目标的,而不是spring-boot:build-image.

这是完整的程序:

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

推荐阅读