You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`io.buildpacks.buildpack.metadata`| A JSON object representing information about the packaged entrypoint buildpack |
61
+
|`io.buildpacks.buildpack.layers`| A JSON object representing information about all packaged buildpacks and their associated layers. |
62
+
63
+
##### `io.buildpacks.buildpack.metadata` (JSON)
64
+
49
65
```json
50
66
{
51
-
"id": "<entrypoint buildpack ID>",
52
-
"version": "<entrypoint buildpack version>",
53
-
"stacks": [
54
-
{
55
-
"id": "<stack ID>",
56
-
"mixins": ["<mixin name>"]
67
+
"id": "<buildpack ID (required)>",
68
+
"name": "<buildpack name (optional)>",
69
+
"version": "<buildpack version (required)>",
70
+
"homepage": "<buildpack home page (optional)>",
71
+
}
72
+
```
73
+
74
+
##### `io.buildpacks.buildpack.layers` (JSON)
75
+
76
+
```json
77
+
{
78
+
# schema of a meta-buildpack
79
+
"<buildpack ID (required)>": {
80
+
"<buildpack version (required)>": {
81
+
"api": "<buildpack API (required)>",
82
+
"order": [
83
+
{
84
+
"group": [
85
+
{
86
+
"id": "<inner buildpack ID (required)>",
87
+
"version": "<inner buildpack version (required)>"
88
+
}
89
+
]
90
+
}
91
+
],
92
+
"layerDiffID": "<diff ID of buildpack layer (required)>",
93
+
"homepage": "<buildpack homepage (optional)>",
94
+
"name": "<buildpack name (optional)>"
95
+
}
96
+
},
97
+
# schema of a regular buildpack
98
+
"<buildpack ID (required)>": {
99
+
"<buildpack version (required)>": {
100
+
"api": "<buildpack API (required)>",
101
+
"layerDiffID": "<diff ID of buildpack layer (required)>",
102
+
"homepage": "<buildpack homepage (optional)>",
103
+
"name": "<buildpack name (optional)>"
57
104
}
58
-
]
105
+
}
59
106
}
60
107
```
61
108
109
+
For each buildpack layer, the buildpack ID and the buildpack version MUST be provided in `io.buildpacks.buildpack.layers`.
110
+
62
111
The buildpack ID and version MUST match a buildpack provided by a layer blob.
63
112
64
-
For a buildpackage to be valid, each `buildpack.toml` describing a buildpack implementation MUST have all listed stacks.
113
+
For a buildpackage to be valid, each `buildpack.toml` describing a buildpack implementation MUST have all listed targets.
114
+
115
+
### Builder
116
+
117
+
The following specifies the artifact format for a buildpacks builder.
118
+
119
+
A builder is an OCI Image that provides a distributable build environment.
120
+
121
+
A platform supporting builders SHOULD allow users to configure the build environment for a provided builder.
122
+
123
+
#### General Requirements
124
+
125
+
The builder image MUST contain an implementation of the [lifecycle](#lifecycle), and a [build-time](#build-image) environment, and MAY contain [buildpacks](#buildpackage). Platforms SHOULD use builders to ease the build process.
126
+
127
+
#### Filesystem
128
+
129
+
A builder MUST have the following directories/files:
130
+
131
+
*`/cnb/order.toml`→ As defined in the [platform specification](https://github.com/buildpacks/spec/blob/main/platform.md#ordertoml-toml).
132
+
133
+
#### Environment Variables
134
+
135
+
A builder MUST be an extension of a Build Image, and MUST retain all the specified environment variables set on the original build image, as specified in the Build Image specifications.
136
+
137
+
#### Labels
65
138
66
-
For each listed stack, all associated buildpacks MUST be a candidate for detection when the entrypoint buildpack ID and version are selected.
139
+
A builder MUST be an extension of a Build Image, and MUST retain all the specified Labels set on the original build image, as specified in the Build Image specifications.
140
+
141
+
A builder image MUST contain an implementation of the [lifecycle](#lifecycle), and MUST retain all the specified Labels set on the original Lifecycle image, as specified in the lifecycle distribution specifications.
142
+
143
+
A builder image MAY contain buildpacks, and MAY retain all the specified Labels set on the original buildpackage, as specified in the [buildpackage](#buildpackage) specification with the following exceptions:
144
+
145
+
-`io.buildpacks.buildpack.metadata` MUST not be set.
146
+
-`io.buildpacks.buildpack.layers` on the builder SHOULD be a merged version based on all buildpackages combined and thereby have of all packaged buildpacks represented.
147
+
148
+
In addition to all inherited labels above, the following labels MUST be set in the builder environment (through the image config's `Labels` field):
0 commit comments