spring-boot - 基于另一个创建 paketo builder
问题描述
Spring Boot maven 插件使用 paketo builder 构建图像。
gcr.io/paketo-buildpacks/builder:base-platform-api-0.3
我想做的是在这个构建器正在做的事情上增加另一个步骤。我创建了自己的 buildpack 并尝试创建包含基本 buildpack 的构建器。
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 问题。见这里。
一种选择是为您希望扩展的构建器完全复制 builder.toml。然后编辑/修改它并创建一个新的 builder。这可能会很棘手,因为 builder.toml 在我写这篇文章的时候还没有发布在任何容易找到和复制它们的地方。
一种可能更接近您想要的替代方法是使用元 CNB(元 CNB 是构建包的集合)。如果您在 builder.toml 的 buildpacks 部分中引用元 CNB,它将拉入所有引用的 buildpacks。然后,您可以定义自己的自定义订单。
前任:
[[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 元 CNB 之前运行。您也可以让它在 Java 元 CNB 之后运行,或者甚至定义自定义订单,因为您可以参考订单组中元 CNB 版本所包含的构建包 ID/构建包版本。
推荐阅读
- json - React/Redux:失败的道具类型 - 无效的道具对象
- php - 如何让 PhpStorm 识别 Laravel 外观?
- c++ - 无法在头文件 C++ 中声明类
- vim - 如何将密钥绑定到未公开的插件功能?
- python - 循环提取数组数组中的每个数组python
- php - apache2 在 ubuntu 上使用未定义的常量 PASSWORD_ARGON2I
- python - 使用多个 find_all
- angular - 在 iframe 中播放视频时,Ionic Real Android 设备灯熄灭
- javascript - 根据我的节点版本,我可以使用哪个 npm 版本有限制吗?
- ios - 约束UITableViewCell,错误的rightAnchor