0.25.0 Migration Guide
Registry Plugin
The dokku-registry plugin is now built-in. This comes with a few changes:
- Builder plugins should call
post-release-builderat the end of the build. - The
pushandpullcommand are not implemented. Users wishing to deploy a remote image should usegit:from-image. Image pushing is not available at this time. - At this time, remote docker repositories are not automatically created for AWS, and users must create those repositories for their applications as necessary. This may be implemented in the future.
- Docker images are only pushed when configured to do so. See the registry management documentation for more details.
Before upgrading, uninstall the registry plugin via dokku plugin:uninstall registry. Not doing so will cause issues with Dokku.
Other
Changes
- The network plugin can now set an
initial-networkfor all containers on creation. This is a replacement for specifying the--networkflag via thedocker-optionsplugin. Please see the network documentation for more information. - The
dokku runcommand now always removes the ephemeral container on exit. Users that need a persistent container should instead specify aconsoleprocess type in theirProcfilespecifying an available shell (usually eitherbashorsh) and scale that container appropriately. - The
pre-deployplugin trigger is now called internally by Dokku. Scheduler plugins should avoid calling this trigger, as any image changes introduced by subsequent trigger calls will be ignored. - The default image used for Herokuish Buildpack builds is now
gliderlabs/herokuish:latest-20, and is based on both theheroku-20stack as well as Ubuntu 20.04. Users that wish to stick with the old,heroku-18/Ubuntu 18.04 builder may specifygliderlabs/herokuish:latest-18as their builder image. Please see the herokuish buildpack deployment documentation for more information on how to specify a custom buildpack stack builder. - This change does not impact any users of Cloud Native Buildpacks.
- We fixed an issue that required extracting Procfiles at the beginning of a deploy. Due to this change, a
Dockerfileapp contains aProcfilethat does not specify awebprocess will fail to start. Usage of aProcfilewith only areleasecommand should be replaced with ascripts.dokku.postdeploydeployment task in theapp.jsonfile. The alternative is to define thewebprocess in theProcfile. See the deployment task documentation for more information.
Deprecations
- In previous versions of Dokku, the only way to specify a custom
Dockerfilewas to use thedocker-optionsplugin to set the--fileflag for a docker build. As of 0.25.0, thebuilder-dockerfile:setcommand should be used instead, as outlined in the docs here. Usage of the old method should be migrated to the new method. - The
--rmand--rm-containerflags may be specified but no longer have any effect ondokku run. - The
--detachflag is deprecated in favor of therun:detachedcommand. - The
DOKKU_SCALEfile is deprecated. Please see the process management documentation for more information on it's replacement with theformationkey of theapp.jsonfile. - The hooks
post-release-buildpack,post-release-dockerfile, andpost-release-packare deprecated in favor ofpost-release-builder. See the plugin triggers documentation for more details.
Removals
- As of April 2021, Ubuntu 16.04 is no longer an LTS release, and support has been removed. Packages may still install on older versions of Ubuntu, but are no longer tested, and therefore no support will be provided.
- The web installer has been removed. Users are now required to setup Dokku via cli commands. This change was made to combat potential security issues where users ignored the web installer, allowing unauthorized users to add their keys to the host.
- The
scheduler-docker-cleanupplugin trigger has been removed from the scheduler interface, and is no longer invoked.