Cloud Native Buildpacks (Experimental)
New
Introduced in 0.22.0
buildpacks:set-property [--global|<app>] <key> <value> # Set or clear a buildpacks property for an app
Warning
This functionality uses the pack
cli from the Cloud Native Buildpacks project to build apps. As the integration is experimental in Dokku, it is likely to change over time.
Usage
To use this builder instead of either Dockerfile
or herokuish
, you must set the DOKKU_CNB_EXPERIMENTAL
environment variable for your app to 1
.
The pack
cli tool is not included by default with Dokku or as a dependency. It must also be installed as shown on this page.
Builds will proceed with the pack
cli for the app from then on.
Caveats
As this functionality is highly experimental, there are a number of caveats. Please note that not all issuesare listed below.
- Specifying specific buildpacks is not currently possible.
- A future release will add support for specifying buildpacks via the
buildpacks
plugin. - There is currently no way to specify extra arguments for
pack
cli invocations. - A future release will add support for injecting extra arguments during the build process.
- The default process type is
web
. - Build cache is stored in Docker volumes instead of on disk. As such,
repo:purge-cache
currently has no effect. - A future version will add integration with the
repo
plugin. pack
is not currently included with Dokku, nor is it added as a package dependency.- A future version will include it as a package dependency.
Customizing the Buildpack stack builder
New
Introduced in 0.23.0
The default stack builder in use by CNB buildpacks in Dokku is based on heroku/buildpacks
. Users may desire to switch the stack builder to a custom version, either to update the operating system or to customize packages included with the stack builder. This can be performed via the buildpacks:set-property
command.
The specified stack builder can also be unset by omitting the name of the stack builder when calling buildpacks:set-property
.
A change in the stack builder value will execute the post-stack-set
trigger.
Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set DOKKU_CNB_STACK
environment variable (heroku/buildpacks
by default).