【问题标题】:How to configure buildpack bindings with the spring-boot-maven-plugin?如何使用 spring-boot-maven-plugin 配置 buildpack 绑定?
【发布时间】:2021-03-12 16:10:51
【问题描述】:

我正在使用最新版本 2.4.0 中的 spring-boot-maven-plugin 来构建镜像。 https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/htmlsingle/#build-image

文档描述了如何设置使用的 buildback 的环境变量。 https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/htmlsingle/#build-image-example-builder-configuration

但是 buildpack 的一些配置是使用绑定进行的。例如。依赖映射。 https://github.com/paketo-buildpacks/bellsoft-liberica

如何将这些绑定与 spring-boot-maven-plugin 一起使用?

【问题讨论】:

  • SebastianP, as the paketo docs state 绑定通常用于以构建映像可以访问的形式提供凭据、机密等。因此通常bindings are provided in form of Docker volume mounts or Kubernetes secrets。我想为此提供配置抽象不是 spring-boot-maven-plugin 的 buildpack/Paketo 集成的目标......
  • 但是,如果您问自己真正的目标是什么,也许我们能够为您的问题找到更好的答案。因此,让我们详细说明您的短语:“例如依赖映射”?你到底是什么意思?你想达到什么目标?您是否有一个示例 GitHub 项目可以更好地展示您的用例?也许我们可以稍微重构您的问题以找到合适的答案...
  • 嗨@jonashackt!谢谢您的答复。让我试着澄清一下我的目标:BellSoft Liberica Buildpack 从 github.com 下载 JRE 或 JDK。我的构建管道无法访问 Gitlab.com。 BellSoft Liberica Buildpack 提供了一个binding with type "dependency-mapping",可用于将新的 URI 映射到给定的依赖项。
  • 我想使用此绑定从可访问位置下载所需 JRE 或 JDK 的副本,如使用 spring-boot-maven-plugin 描述的here。有办法吗?

标签: spring-boot maven spring-boot-maven-plugin buildpack paketo


【解决方案1】:

According to the docs:

Paketo Buildpacks 可以从 Internet 下载依赖项。为了 例如,Java Buildpack 将下载 BellSoft Liberica JRE 默认情况下来自 Liberica github 版本。如果从构建环境中无法访问依赖项 URI,则可以使用绑定将新 URI 映射到给定的依赖项。

AFAIK 目前无法通过spring-boot-maven-plugin 定义绑定。我还扫描了github.com/paketo-buildpacks/bellsoft-liberica 的一些代码,但我没有捕获其他/未记录的环境变量,因为我们可以将其用作解决方法。现在你需要坚持使用pack CLI and define a binding 并用这个替换mvn spring-boot:build-image 命令。

我可以推荐this stackoverflow Q&Ahow to use pack CLI with bindings to configure a different JDK download uri 上的答案来解决您的问题。

【讨论】:

  • 感谢detailed answer github上还有一个关于这个主题的问题:github.com/spring-projects/spring-boot/issues/23518
  • 啊,很高兴看到 - 但正如我所料,Spring 开发团队也对在 spring-boot-maven-plugin 中实现此功能持怀疑态度。也许有一个使用配置文件Stéphane Nicoll outlined的解决方案...但是现在,您可以直接使用pack CLI使用绑定。
  • Spring Boot 开发团队并不怀疑在插件中实现绑定功能。目前计划发布 2.5.0 版本。问题中的讨论是关于图像配置元素(包括现有配置和新的 <bindings> 元素)是否应该直接在 pom.xml 中或像使用自定义层配置(docs.spring.io/spring-boot/docs/current/maven-plugin/reference/…)那样提取到单独的 XML 文件中.
  • 很高兴知道,2.5.x 将支持绑定!
猜你喜欢
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2021-12-22
  • 2022-01-16
  • 2015-04-26
  • 2022-10-19
  • 1970-01-01
  • 2020-07-08
相关资源
最近更新 更多