This guide is most relevant to buildpack authors.
See the spec release for Buildpack API 0.9 for the full list of changes and further details.
Buildpack-defined processes may no longer implicitly rely on a shell (be non-direct).
In launch.toml
, direct
is removed as a key in the [[processes]]
table, and all processes are inferred to be direct = true
.
Buildpack processes can still use a shell! However, the command
must now explicitly begin with /bin/sh
(or cmd.exe
on Windows).
Hand-in-hand with shell removal is the introduction of overridable process arguments.
In launch.toml
, command
is now a list. The first element in command
is the command, and all following entries are arguments that are always provided to the process, regardless of how the application is started. The args
list now designates arguments that can be overridden by the end user - if supported by the platform (Platform API version 0.10 and above).
For further details, see the platform migration guide.
For older platforms (Platform API version 0.9 and below), arguments in command
will be prepended to arguments in args
, negating the new functionality (but preserving compatibility).
Platform 0.10 introduces image extensions as experimental components for customizing build and run-time base images (see here for more information).
For more information, see our tutorial on authoring an image extension.