To write a buildpack, we follow the Buildpack Specification, which defines the contract between buildpacks and the lifecycle.
The Build Plan is a document that buildpacks can use to pass information between the detect
and build
phases, and between each other.
The build plan is passed (by the lifecycle) as a parameter to the detect
and build
binaries of each buildpack.
Each directory created by the buildpack under the CNB_LAYERS_DIR
can be used as a layer in the final app image or build cache.
One of the benefits of buildpacks is that they are multi-process - an image can have multiple entrypoints for each operational mode.
Buildpacks can provide a Software Bill-of-Materials
(SBOM)
to describe the dependencies that they provide.