0.31.0 Migration Guide¶
Changes¶
- Herokuish build cache is now mounted from a docker volume - eg.
cache-node-js-app- instead of the local filesystem. All existing app cache will be cleared upon upgrading past 0.29.0. - The
vectorcontainer integration now mounts config to/etc/vectorinstead of the path/etc/vector/vector.json, allowing users the ability to provide extra configuration for Vector Sinks. To take advantage of the new functionality, the vector container should be stopped (viadokku logs:vector-stop) and then started (viadokku logs:vector-start). - The
traefikintegration now mounts config to/datainstead of the path/acme.json, fixing permissions issues under certain architectures. To take advantage of the new functionality, the traefik container should be stopped (viadokku traefik:stop) and then started (viadokku traefik:start). - Users no longer need to clear the
source-imagegit property when transitioning from image-based deploys (git:from-imageandgit:load-image) to other deployment methods (git push,git:from-archive,git:sync). - For deploys via the
git:from-imageandgit:load-imagecommands, theCHECKSfile is now extracted from the configuredWORKDIRproperty of the image. For all other deploys - git push,git:from-archive,git:sync- will have theCHECKSextracted directly from the source code. The filename in both cases isCHECKSand cannot be modified. - Port mappings are now auto-detected during the build process. Users may override detected port mappings via the
portsplugin. A default port mapping ofhttp:80:5000will be used if none is otherwise specified. - Users building docker images that run Dokku will need to use a new sudoer wrapper for the
docker-container-healthcheckerbinary to work correctly. A reference version has been placed in thedockerskeleton directory. This should only impact platform developers, and users of our Docker image will already have the file available. - The default image used for Herokuish Buildpack builds is now
gliderlabs/herokuish:latest-22, and is based on both theheroku-22stack as well as Ubuntu 22.04. Users that wish to stick with the old,heroku-20/Ubuntu 20.04 builder may specifygliderlabs/herokuish:latest-20as their builder image. Please see the herokuish buildpack deployment documentation for more information on how to specify a custom buildpack stack builder. - The default image used for Cloud Native Buildpack builds is now
heroku/builder:22, and is based on both theheroku-22stack as well as Ubuntu 22.04. Users that wish to stick with the old,heroku-20/Ubuntu 20.04 builder may specifyheroku/buildpacks:20as their builder image. Please see the herokuish buildpack deployment documentation for more information on how to specify a custom buildpack stack builder.
Deprecations¶
- The
proxy:ports*commands have been replaced with the newportsplugin. Users will be able to use the oldproxy:ports*commands for a single minor release, and they will be removed in the next minor release. - The
common#get_available_port()function has been deprecated and will be removed in the next release. Users should avoid interacting with this function and instead use theports-get-availableplugin trigger for fetching an available port. - The
proxy-configure-portsplugin trigger has been deprecated and will be removed in the next release. Users should instead trigger theports-configureplugin trigger. - The
common#get_dockerfile_exposed_ports()function is deprecated and will be removed in the next release. There is no replacement for this as it's only use in Dokku core was in thebuilder-dockerfileplugin. - The
common#get_exposed_ports_from_image()function is deprecated and will be removed in the next release. There is no replacement for this as it's only use in Dokku core was during the build process. - The environment variable
DOKKU_PROXY_PORT_MAPhas been migrated to the properties system. Direct changes to the value will be ignored, and users should interact with port maps via theportsplugin. - The
CHECKSfile is deprecated in favor of defining healthchecks in theapp.jsonfile. The docker-container-healthchecker tool can be used to generate healthcheck entries inapp.jsonformat from existingCHECKSfiles. See the zero-downtime deploy documentation for more information on how the new zero downtime check format works. - ARM support is now deprecated, and will be removed in the next minor release. ARM releases are not tested in CI and do not get testing locally. Users of ARM installations on platforms such as the Raspberry PI should consider migrating to ARM64. ARM64 will continue to be supported by Dokku, and there are no plans to remove support for ARM64.
Un-Deprecations¶
- The bare
appsandconfigcli aliases are no longer deprecated. This better follows Heroku's output and is more useful to users. The subcommands will be treated as the primary, documented versions, while the aliases are there for convenience.
Removals¶
- The variable
RAW_TCP_PORTSis no longer exposed fornginx.conf.sigiltemplating. - The environment variable
DOKKU_DOCKERFILE_PORTSis no longer in use. Users wishing to change port mappings should instead use theportsplugin. - The
common#get_app_raw_tcp_ports()function has been removed in the next release. Users should instead use theports-getplugin trigger for fetching ports for an app. - The plugin trigger
network-compute-portshas been removed. It's only use was in thescheduler-docker-localplugin, for exposing ports. It's functionality is now implemented via theportsplugin. - The plugin trigger
network-get-porthas been removed. It's only use was in thescheduler-docker-localplugin, for recording ports. It's functionality is now implemented via theportsplugin.