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/