当前位置: 首页 > 知识库问答 >
问题:

创建paketo构建器基于另一个

李新霁
2023-03-14

Spring boot maven插件正在使用paketo builder构建图像。

gcr.io/paketo-buildpacks/builder:base-platform-api-0.3

我想做的是在这个构建器正在做的事情上添加另一个步骤。我已经创建了自己的构建包,并试图创建包含基本构建包的构建器。

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中创建一个builder而不详细说明里面发生了什么?

共有1个答案

松增
2023-03-14

目前,我不相信有一种方法可以“扩展”一个构建器。但是要添加这样的特性,Github有一个与buildpacks规范背道而驰的问题。看这里。

一种选择是完全复制要扩展的生成器的builder.toml。然后编辑/修改它并创建一个新的构建器。这可能很棘手,因为在我写这篇文章的时候,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版本所包含的buildpack ID/buildpack版本。

 类似资料:
  • 我试图建立一个专栏,将根据另一个。新列应反映满足某些标准的值,并在值不符合标准的地方放置0。 例如,名为银行余额的列将有负值和正值;新列透支将为相应行提供负值,余额大于0时为0。 最终结果应该是这样的。

  • 基于dataframe列val_1值,查看其他列col_0-10标签前缀,然后创建另一列Mycl。 数据帧看起来像: 应用逻辑后所需的数据帧: 我是trid,但这不起作用:df['mycol']=df['col'df['val_1']。aType(str)] DDL生成DataFrame: 谢谢!

  • 问题内容: 我有2个表:projects,project_types。 如何基于project_type_id创建一个名为projectTypeName的虚拟字段,其名称来自projectType,对于那些project_type_id = 0的字段,它将为“” 我有这个 它正确显示为“ sales”,但我不想一一指定。 谢谢 问题答案: 这对我有用

  • 问题内容: 我想基于现有的Swing JComponent创建一个新的Swing JComponent,但使用不同的API。换句话说,我不想扩展现有组件,因为我不想访问它的API。 这里有一个例子来阐明我的需求: 替换为显示两个按钮ON / OFF。这可以基于 预先配置的 (此处提供一些信息),但要公开与完全相同的API 。不得更改其配置。 解决此类问题的最佳方法是什么? 说明: 有人指出,我写的

  • 我想从另一个对象创建一个< code>ExampleInterface对象,但只保留< code>ExampleInterface包含的那些属性。 是否可以不手动复制每个密钥? 然后呢 提前谢谢你。

  • braft 本身并不提供server功能, 你可以将braft集成到包括brpc在内的任意编程框架中,本文主要是阐述如何在分布式Server中使用braft来构建高可用系统。具体业务如何实现一个Server,本文不在展开。 Example server-side code of Counter 注册并且启动Server braft需要运行在具体的brpc server里面你可以让braft和你的业