spring-boot - 创建基于另一个的paketo构建器

标签 spring-boot docker buildpack paketo

Spring Boot Maven插件正在使用Paketo Builder构建图像。gcr.io/paketo-buildpacks/builder:base-platform-api-0.3我想做的就是向此构建器正在执行的操作添加另一步。
我已经创建了自己的buildpack,并尝试创建包含基本buildpacks的构建器。

builder.toml
...
...
[[buildpacks]]
image = "my-own-buildpack"
[[buildpacks]]
image = "gcr.io/paketo-buildpacks/builder:base-platform-api-0.3"
...
我遇到的第一个问题是尝试从builder.toml中创建构建器时出现此错误:
ERROR: failed to add buildpacks to builder: extracting buildpacks from gcr.io/paketo-buildpacks/builder:base-platform-api-0.3: could not find label io.buildpacks.buildpackage.metadata
另一个问题是,即使可行,我想我仍然必须从paketo:base指定所有order.group。
实际上有没有一种方法可以使用paketo-buildpacks / builder来创建构建器,而无需深入了解内部发生的事情?

最佳答案

目前,我不认为有办法“扩展”构建器。尽管添加了这样的功能,但针对buildpacks规范存在一个Github问题。 See here
一种选择是完全复制要扩展的构建器的builder.toml。然后编辑/修改它和create a new builder。这可能很棘手,因为在我撰写本文时,builder.toml尚未发布在易于查找和复制的任何地方。
一种可能更接近您想要的替代方法是使用元CNB(元CNB是buildpack的集合)。如果在builder.toml的buildpacks部分中引用了元CNB,它将提取所有引用的buildpack。然后,您可以定义自己的自定义订单。
例如:

[[buildpacks]]
id = "paketo-buildpacks/node-engine"
image = "gcr.io/paketo-buildpacks/node-engine:0.1.1"

[[buildpacks]]
id = "paketo-buildpacks/java"
image = "gcr.io/paketo-buildpacks/java:3.1.0"

[[order]]
    [[order.group]]
    id = "paketo-buildpacks/node-engine"
    version = "0.1.1"

    [[order.group]]
    id = "paketo-buildpacks/java"
    version = "3.1.0"

[stack]
  id = "io.buildpacks.stacks.bionic"
  build-image = "gcr.io/paketo-buildpacks/build:base-cnb"
  run-image = "gcr.io/paketo-buildpacks/run:base-cnb"
本示例将添加节点引擎CNB,并使它在Java meta CNB之前运行。您可以选择使其在Java meta CNB之后运行,甚至可以定义自定义订单,因为您可以在订单组中引用meta CNB版本所包含的buildpack id / buildpack版本。

关于spring-boot - 创建基于另一个的paketo构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63899982/

相关文章:

java - 如何在 spring boot 中生成 soap web 服务?

docker - "docker stop"和 "docker rm"有什么区别?

linux - 如何在 bash 中获取映射到 docker 容器的特定主机名的所有 IP 地址

docker-compose 在 mongoDB 中创建复制

heroku - 在heroku buildpack期间运行knex迁移

spring - Gradle,Spring Boot,spring-boot-starter-data-jpa升级

java - 在 Timer 类对象中使用 Main 方法中的 NULL Autowired 对象

spring-boot - spring boot gradle任务 "bootBuildImage"构建的cloudfoundry buildpack docker镜像中的语言环境和编码如何设置

gradle - 如何通过Gradle bootRun将调试标志传递给Spring Boot以查看自动配置信息

Amazon AWS Buildpack 中完美的服务器部署