Spring boot maven插件使用paketo builder来构建镜像。
gcr.io/paketo-buildpacks/builder:base-platform-api-0.3
我想要做的是在这个构建器正在做的事情上增加另一个步骤。我已经创建了自己的buildpack,并尝试创建包含基本buildpack的builder。
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: order.group中的所有基础。
实际上,有没有一种方法可以从paketo-buildpack/ builder中创建一个构建器,而不需要深入了解内部发生了什么?
发布于 2020-09-15 22:50:19
目前,我不相信有一种方法可以“扩展”构建器。尽管添加了这样一个特性,但是Github对buildpack规范有一个公开的问题。See here。
一种选择是完全复制您想要扩展的构建器的builder.toml。然后编辑/修改它和create a new builder。这可能很棘手,因为在我写这篇文章的时候,builder.toml还没有发布到任何容易找到和复制的地方。
一种替代方案可能更接近您的需求,那就是使用meta CNB ( meta CNB是构建包的集合)。如果您在builder.toml的buildpacks部分引用一个meta 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"此示例将添加node-engine CNB,并使其在Java meta CNB之前运行。您也可以让它在Java meta CNB之后运行,或者甚至定义一个自定义顺序,因为您可以在顺序组中引用您的meta CNB版本所包含的buildpack id/版本。
https://stackoverflow.com/questions/63899982
复制相似问题