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
|`<plan>`|`CNB_PLAN_PATH`|`<layers>/plan.toml`| Path to output resolved build plan |
410
412
|`<platform>`|`CNB_PLATFORM_DIR`|`/platform`| Path to platform directory |
411
413
|`<run>`^ |`CNB_RUN_PATH`|`/cnb/run.toml`| Path to run file (see [`run.toml`](#runtoml-toml)) |
414
+
|`<system>`|`CNB_SYSTEM_PATH`|`/cnb/system.toml`| Path to system buildpacks file (see [`system.toml`](#systemtoml-toml)) |
412
415
413
416
> ^Only needed when using image extensions
414
417
@@ -438,6 +441,12 @@ Usage:
438
441
|`91`| Extension generate error |
439
442
|`92-99`| Generation-specific lifecycle errors |
440
443
444
+
When `<system>` is provided (optional), the lifecycle:
445
+
- SHALL merge the `system.pre.buildpacks` group with each group from `<order>` such that the `pre` buildpacks are placed at the beginning of each order group before running detection.
446
+
- System buildpacks in `pre` SHALL NOT be merged if the group already contains a buildpack with the same ID.
447
+
- SHALL merge the `system.post.buildpacks` group with each group from `<order>` such that the `post` buildpacks are placed at the end of each order group before running detection.
448
+
- System buildpacks in `post` SHALL NOT be merged if the group already contains a buildpack with the same ID.
449
+
441
450
The lifecycle:
442
451
- SHALL detect a single group from `<order>` and write it to `<group>` using the [detection process](buildpack.md#phase-1-detection) outlined in the Buildpack Interface Specification
443
452
- SHALL write the resolved build plan from the detected group to `<plan>`
@@ -1433,6 +1442,27 @@ Where:
1433
1442
- SHOULD reference an image with ID identical to that of `image.image`
1434
1443
-`image.image` and `image.mirrors.[]` SHOULD each refer to a unique registry
1435
1444
1445
+
#### `system.toml` (TOML)
1446
+
1447
+
```toml
1448
+
[[system.pre.buildpacks]]
1449
+
id = "<buildpack ID>"
1450
+
version = "<buildpack version>"
1451
+
optional = false
1452
+
1453
+
[[system.post.buildpacks]]
1454
+
id = "<buildpack ID>"
1455
+
version = "<buildpack version>"
1456
+
optional = false
1457
+
```
1458
+
1459
+
Where:
1460
+
1461
+
-`system.pre.buildpacks` MAY contain a list of buildpacks to insert at the beginning of every order group before detection.
1462
+
-`system.post.buildpacks` MAY contain a list of buildpacks to insert at the end of every order group before detection.
1463
+
- Both `id` and `version` MUST be present for each buildpack object in `system.pre.buildpacks` and `system.post.buildpacks`.
1464
+
- The value of `optional` MUST default to `false` if not specified.
0 commit comments