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
Copy file name to clipboardExpand all lines: buildpack.md
+1-45Lines changed: 1 addition & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,7 +103,7 @@ A **component buildpack** is a buildpack containing `/bin/detect` and `/bin/buil
103
103
104
104
A **composite buildpack** is a buildpack containing an order definition in `buildpack.toml`. Composite buildpacks do not contain `/bin/detect` or `/bin/build` executables. They MUST be [resolvable](#order-resolution) into a collection of component buildpacks.
105
105
106
-
An **image extension**(**experimental**) is a directory containing an `extension.toml`. Extensions generate Dockerfiles that can be used to define the runtime base image, prior to buildpack execution. Extensions implement the [Image Extension Interface](image-extension.md). Extensions are always "component": their `extension.toml` cannot contain an order definition.
106
+
An **image extension** is a directory containing an `extension.toml`. Extensions generate Dockerfiles that can be used to define the runtime base image, prior to buildpack execution. Extensions implement the [Image Extension Interface](image-extension.md). Extensions are always "component": their `extension.toml` cannot contain an order definition.
107
107
108
108
**Resolving an order** is the process by which an order (which may contain image extensions, component buildpacks, or composite buildpacks) is evaluated together with application source code to produce an optional group of image extensions and a required group of component buildpacks that can be used to build the application. This process is known as **detection**. During detection, the `/bin/detect` executable for each image extension (if present) and the `/bin/detect` executable for each component buildpack is invoked.
109
109
@@ -1242,47 +1242,3 @@ If the `bom` array is used, the buildpack:
1242
1242
When the build is complete, a legacy build BOM describing the build container MAY be generated for auditing purposes.
1243
1243
1244
1244
If generated, this legacy build BOM MUST contain all `bom` entries in each `build.toml` at the end of each `/bin/build` execution, in adherence with the process and data format outlined in the [Platform Interface Specification](platform.md) for legacy BOM formats.
1245
-
1246
-
### Build Plan (TOML) `requires.version` Key
1247
-
1248
-
_Deprecated in Buildpack API 0.3._
1249
-
1250
-
The `requires.version` and `or.requires.version` keys are deprecated.
1251
-
1252
-
```toml
1253
-
[[requires]]
1254
-
name = "<dependency name>"
1255
-
version = "<dependency version>"
1256
-
1257
-
[[or.requires]]
1258
-
name = "<dependency name>"
1259
-
version = "dependency version>"
1260
-
```
1261
-
1262
-
To upgrade, buildpack authors SHOULD set `requires.version` as `requires.metadata.version` and `or.requires.version` as `or.requires.metadata.version`.
1263
-
1264
-
```toml
1265
-
[[requires]]
1266
-
name = "<dependency name>"
1267
-
1268
-
[requires.metadata]
1269
-
version = "<dependency version>"
1270
-
1271
-
[[or.requires]]
1272
-
name = "<dependency name>"
1273
-
1274
-
[or.requires.metadata]
1275
-
version = "<dependency version>"
1276
-
```
1277
-
1278
-
If `requires.version` and `requires.metadata.version` or `or.requires.version` and `or.requires.metadata.version` are both defined then lifecycle will fail.
1279
-
1280
-
For backwards compatibility, the lifecycle will produce a Buildpack Plan (TOML) that puts `version` in `entries.metadata` as long as `version` does not exist in `requires.metadata`.
This document specifies the interface between a lifecycle program and one or more image extensions.
4
4
@@ -89,9 +89,27 @@ Correspondingly, each `/bin/generate` executable:
89
89
- MAY log output from the build process to `stdout`.
90
90
- MAY emit error, warning, or debug messages to `stderr`.
91
91
- MAY write either or both of `build.Dockerfile` and `run.Dockerfile` to the `<output>` directory. This file MUST adhere to the requirements listed below.
92
+
- MAY create the following folders in the `<output>` directory with an arbitrary content:
93
+
94
+
either:
95
+
96
+
-`context`
97
+
98
+
or the image-specific folders:
99
+
100
+
-`context.run`
101
+
-`context.build`
92
102
- MAY write key-value pairs to `<output>/extend-config.toml` that are provided as build args to build.Dockerfile when extending the build image.
93
103
- MUST NOT write SBOM (Software-Bill-of-Materials) files as described in the [Software-Bill-of-Materials](#software-bill-of-materials) section.
94
104
105
+
#### Context Folders
106
+
107
+
- The `<output>/context` folder MUST NOT be created together with any combination of the image-specific folders.
108
+
- If the folder `<output>/context` is present it will be set as the build context during the `extend` phase of the build and run images.
109
+
- If the folder `<output>/context.run` is present it will be set as the build context during the `extend` phase of the run image only.
110
+
- If the folder `<output>/context.build` is present it will be set as the build context during the `extend` phase of the build image only.
111
+
- If none of these folders is not present, the build context defaults to the `<app>` folder.
0 commit comments