如何使用 spring-boot:build-image 嵌入 CA 证书?
How to embed CA-certificates with spring-boot:build-image?
我需要使用 spring-boot:build-image
和 paketo-buildpacks/ca-certificates
将自签名证书添加到 spring-boot docker 映像,但无法正常工作。
所以:
- 将要添加的证书放在哪里?
- 采用哪种格式?
- 如何定义
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>
来自 ${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 的建议将图像绑定配置直接移动到引导插件下(而不是在特定执行中)并解决了问题。
我明白了。上面的 Maven 配置是针对 Maven package
目标的,而不是 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
我也遇到了同样的问题,我发现您的 post 很有帮助。经过一番尝试,我发现您的配置也可以与 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>
如您所见,我在 <plugin>
之后添加了 <configuration>
。这样,它似乎可以通过 spring-boot:build-image
进行解析
我需要使用 spring-boot:build-image
和 paketo-buildpacks/ca-certificates
将自签名证书添加到 spring-boot docker 映像,但无法正常工作。
所以:
- 将要添加的证书放在哪里?
- 采用哪种格式?
- 如何定义
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>
来自 ${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 的建议将图像绑定配置直接移动到引导插件下(而不是在特定执行中)并解决了问题。
我明白了。上面的 Maven 配置是针对 Maven package
目标的,而不是 spring-boot:build-image
.
完整的程序如下:
- 在 Maven 项目根目录创建
bindings/ca-certificates
文件夹并添加:type
文件仅包含ca-certificates
- 您想嵌入的 CA 证书(PEM 格式)
- 在 pom.xml 中,将
build-image
执行添加到spring-boot-maven-plugin
,并按照我的问题 配置的 - 运行
mvn clean package
${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates
图像绑定
我也遇到了同样的问题,我发现您的 post 很有帮助。经过一番尝试,我发现您的配置也可以与 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>
如您所见,我在 <plugin>
之后添加了 <configuration>
。这样,它似乎可以通过 spring-boot:build-image