# History ## 0.33.0 Install/update via the bootstrap script: ```shell wget -NP . https://dokku.com/install/v0.33.0/bootstrap.sh sudo DOKKU_TAG=v0.33.0 bash bootstrap.sh ``` ### Bug Fixes - #6466: @josegonzalez Use correct key for migrating global scheduler configuration on upgrade - #6450: @josegonzalez Always set -- on docker run commands internally to avoid parsing flags on specified commands - #6447: @josegonzalez Propagate arm64 build support for development builds - #6445: @josegonzalez Do not strip whitespace when displaying a file for debugging purposes - #6442: @josegonzalez Ignore go.work when bumping modules - #6427: @josegonzalez Add missing gitignore entry for app-json trigger ### New Features - #6500: @josegonzalez Add support for custom user namespaces when creating persistent storage directories - #6492: @josegonzalez Add support for multierror when exiting triggers - #6491: @josegonzalez Add wrappers for exec and ssh commands - #6489: @josegonzalez Disable flag parsing for dokku enter - #6469: @josegonzalez Allow generating an ssh deploy key via the git plugin - #6468: @josegonzalez Implement global support for setting proxy type - #6467: @josegonzalez Add ability to customize the registry repo with a template - #6464: @josegonzalez Create helper function for exposing a docker image's working directory - #6462: @josegonzalez Ensure ps:stop has a proper cli header - #6460: @josegonzalez Add a post-registry-login trigger - #6459: @josegonzalez Alias common registry names to docker.io - #6457: @josegonzalez Add the ability to specify the output format when listing ports - #6452: @josegonzalez Add alternative implementation for calling plugin triggers - #6446: @josegonzalez Add support for global-only environment properties - #6443: @josegonzalez Add support for exposing healthchecks in the AppJson struct - #6435: @josegonzalez Implement native k3s scheduler support - #6433: @josegonzalez Add go.work.sum to gitignore - #6432: @josegonzalez Upgrade golang to 1.21.6 - #6430: @josegonzalez Reformat devcontainer file - #6428: @josegonzalez Add ms-azuretools.vscode-docker to devcontainer setup - #6313: @josegonzalez Set the platform flag in order to run amd64 images on arm64 deploy targets ### Refactors - #6448: @josegonzalez Return an int32 for scale count - #6444: @josegonzalez Allow setting a custom mode when writing a slice to a file ### Documentation - #6517: @josegonzalez Remove k3s tutorial from documentation - #6516: @josegonzalez Note that the external kubernetes plugin is deprecated - #6515: @josegonzalez Replace the kubernetes plugin with k3s in the documentation - #6514: @josegonzalez Add notes on k3s replacement of the scheduler-kubernetes plugin - #6461: @josegonzalez Add documentation for implementing scheduler-related commands - #6458: @josegonzalez Add docblocks to appjson structs - #6420: @aochagavia Fix typo in zero downtime documentation ### Tests - #6465: @josegonzalez Update haproxy tests so they pass - #6449: @josegonzalez Run ci on ubuntu 22.04 - #6431: @josegonzalez Add golanglint-ci testing support ### Dependencies - #6513: @dependabot[bot] chore(deps): bump github.com/containerd/containerd from 1.7.6 to 1.7.11 in /plugins/scheduler-k3s - #6512: @josegonzalez Update github.com/gonsi/gomega golang dependency - #6511: @josegonzalez Update crypto and sys golang dependencies - #6494: @dependabot[bot] chore(deps): bump markupsafe from 2.1.3 to 2.1.4 in /docs/_build - #6482: @dependabot[bot] chore(deps): bump mkdocs-material from 9.5.3 to 9.5.4 in /docs/_build - #6478: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/zombies-dockerfile-tini - #6456: @dependabot[bot] chore(deps): bump google.golang.org/grpc from 1.29.1 to 1.60.1 in /tests/apps/gogrpc - #6454: @dependabot[bot] chore(deps): bump flask from 3.0.0 to 3.0.1 in /tests/apps/python-flask - #6455: @dependabot[bot] chore(deps): bump flask from 3.0.0 to 3.0.1 in /tests/apps/multi - #6453: @josegonzalez Remove ignored dependency from dependabot - #6451: @josegonzalez Update go modules - #6439: @dependabot[bot] chore(deps): bump github.com/onsi/gomega from 1.30.0 to 1.31.0 in /plugins/config - #6438: @dependabot[bot] chore(deps): bump github.com/onsi/gomega from 1.30.0 to 1.31.0 in /plugins/common - #6437: @dependabot[bot] chore(deps): bump beautifulsoup4 from 4.12.2 to 4.12.3 in /docs/_build - #6436: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 41.1.1 to 42.0.0 - #6425: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 41.0.1 to 41.1.1 - #6424: @dependabot[bot] chore(deps): bump mkdocs-material from 9.5.3 to 9.5.4 in /docs/_build - #6421: @josegonzalez chore: bump golang.org/x/sync from 0.5.0 to 0.6.0 - #6419: @dependabot[bot] chore(deps): bump jinja2 from 3.1.2 to 3.1.3 in /docs/_build - #6418: @dependabot[bot] chore(deps): bump jinja2 from 3.1.2 to 3.1.3 in /tests/apps/python-flask - #6415: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/go-fail-postdeploy - #6414: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/gogrpc - #6413: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/go-fail-predeploy - #6412: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/zombies-dockerfile-no-tini - #6411: @dependabot[bot] chore(deps): bump golang from 1.21.5 to 1.21.6 in /tests/apps/zombies-dockerfile-tini - #6410: @dependabot[bot] chore(deps): bump golang.org/x/net from 0.19.0 to 0.20.0 in /tests/apps/gogrpc - #6406: @dependabot[bot] chore(deps): bump golang.org/x/sync from 0.5.0 to 0.6.0 in /plugins/scheduler-docker-local ### Other - #6463: @josegonzalez Use exported function from appjson module instead of manually parsing - #6429: @josegonzalez Use go.work for development purposes
8.4 KiB
Plugin Management
Important
New as of 0.4.0
plugin:disable <name> # Disable an installed plugin (third-party only)
plugin:enable <name> # Enable a previously disabled plugin
plugin:install [--core|--git-url] [--committish branch|commit|tag] [--name custom-plugin-name] # Optionally download git-url (and pin to the specified branch/commit/tag) & run install trigger for active plugins (or only core ones)
plugin:installed <name> # Checks if a plugin is installed
plugin:install-dependencies [--core] # Run install-dependencies trigger for active plugins (or only core ones)
plugin:list # Print active plugins
plugin:trigger <args...>. # Trigger an arbitrary plugin hook
plugin:uninstall <name> # Uninstall a plugin (third-party only)
plugin:update [name [branch|commit|tag]] # Optionally update named plugin from git (and pin to the specified branch/commit/tag) & run update trigger for active plugins
# for 0.3.x
cd /var/lib/dokku/plugins
git clone <git url>
dokku plugins-install
These commands require
rootpermissions as theinstallandinstall-dependenciesplugin triggers may utilize commands such asapt-get. For non-core plugins, please inspect those plugins before running the following command asrootuser.
Usage
Listing Plugins
Installed plugins can be listed via the plugin:list command:
dokku plugin:list
plugn: dev
00_dokku-standard 0.33.0 enabled dokku core standard plugin
20_events 0.33.0 enabled dokku core events logging plugin
app-json 0.33.0 enabled dokku core app-json plugin
apps 0.33.0 enabled dokku core apps plugin
build-env 0.33.0 enabled dokku core build-env plugin
buildpacks 0.33.0 enabled dokku core buildpacks plugin
certs 0.33.0 enabled dokku core certificate management plugin
checks 0.33.0 enabled dokku core checks plugin
common 0.33.0 enabled dokku core common plugin
config 0.33.0 enabled dokku core config plugin
docker-options 0.33.0 enabled dokku core docker-options plugin
domains 0.33.0 enabled dokku core domains plugin
enter 0.33.0 enabled dokku core enter plugin
git 0.33.0 enabled dokku core git plugin
logs 0.33.0 enabled dokku core logs plugin
network 0.33.0 enabled dokku core network plugin
nginx-vhosts 0.33.0 enabled dokku core nginx-vhosts plugin
plugin 0.33.0 enabled dokku core plugin plugin
proxy 0.33.0 enabled dokku core proxy plugin
ps 0.33.0 enabled dokku core ps plugin
repo 0.33.0 enabled dokku core repo plugin
resource 0.33.0 enabled dokku core resource plugin
scheduler-docker-local 0.33.0 enabled dokku core scheduler-docker-local plugin
shell 0.33.0 enabled dokku core shell plugin
ssh-keys 0.33.0 enabled dokku core ssh-keys plugin
storage 0.33.0 enabled dokku core storage plugin
tags 0.33.0 enabled dokku core tags plugin
tar 0.33.0 enabled dokku core tar plugin
trace 0.33.0 enabled dokku core trace plugin
Warning
All plugin commands other than
plugin:listandplugin:helprequire sudo access and must be run directly from the Dokku server.
Checking if a plugin is installed
You can check if a plugin has been installed via the plugin:installed command:
dokku plugin:installed postgres
Installing a plugin
Note
Plugins installed in this method within a docker-based installation of Dokku do not persist across installs. Please see the plugin installation section of the docker-based installation docs for further details.
Installing a plugin is easy as well using the plugin:install command. This command will also trigger the install pluginhook on all existing plugins.
The most common usage is to install a plugin from a url. This url may be any of the following:
git: For git+ssh based plugin repository clones.ssh: For git+ssh based plugin repository clones.file: For copying plugins from a path on disk.https: For http based plugin repository clones.
Additionally, any urls with the extensions .tar.gz or .tgz are treated as Gzipped Tarballs for installation purposes and will be downloaded and extracted into place.
dokku plugin:install https://github.com/dokku/dokku-postgres.git
-----> Cloning plugin repo https://github.com/dokku/dokku-postgres.git to /var/lib/dokku/plugins/available/postgres
Cloning into 'postgres'...
remote: Counting objects: 646, done.
remote: Total 646 (delta 0), reused 0 (delta 0), pack-reused 646
Receiving objects: 100% (646/646), 134.24 KiB | 0 bytes/s, done.
Resolving deltas: 100% (406/406), done.
Checking connectivity... done.
-----> Plugin postgres enabled
For git-based plugin installation, a commit SHA-like object may be specified (tag/branch/commit sha) via the --committish argument and Dokku will attempt to install the specified commit object.
# where 2.0.0 is a potential git tag
dokku plugin:install https://github.com/dokku/dokku-postgres.git --committish 2.0.0
Plugin names are interpolated based on the repository name minus the dokku- prefix. If the plugin being installed has a name other than what matches the repository name - or another name is desired - the --name flag can be used to override this interpolation.
dokku plugin:install https://github.com/dokku/smoke-test-plugin.git --name smoke-test-plugin
The --core flag may also be indicated as the sole argument, though it is only for installation of core plugins, and thus not useful for end-user installations.
dokku plugin:install --core
Finally, all flags may be omitted to trigger the install procedures for both core and third-party plugins:
dokku plugin:install
Installing plugin dependencies
In some cases, plugins will have system-level dependencies. These are not automatically installed via plugin:install, and must be separately via the plugin:install-dependencies command. This will run through all the dependencies trigger for all plugins.
dokku plugin:install-dependencies
This command may also target just core plugins via the --core flag. This is usually only useful for source-based installs of Dokku.
dokku plugin:install-dependencies --core
Updating a plugin
An installed, third-party plugin can be updated can updated via the plugin:update command. This should be done after any upgrades of Dokku as there may be changes in the internal api that require an update of how the plugin interfaces with Dokku.
Please note that this command is only valid for plugin installs that were backed by a git-repository.
dokku plugin:update postgres
Plugin (postgres) updated
An optional commit SHA-like object may be specified.
dokku plugin:update postgres 2.0.0
Any future invocation of plugin:update will respect the previously specified SHA-like object. To follow a particular branch again, specify that branch:
dokku plugin:update postgres main
Uninstalling a plugin
Third party plugins can be uninstalled using the plugin:uninstall command:
dokku plugin:uninstall postgres
-----> Plugin postgres uninstalled
Disabling a plugin
Disabling a plugin can also be useful for debugging whether a third-party plugin is causing issues in a Dokku installation. Another common use case is for disabling core functionality for replacement with a third-party plugin.
dokku plugin:disable postgres
-----> Plugin postgres disabled
Enabling a plugin
Disabled plugins can be re-enabled via the plugin:enable command.
dokku plugin:enable postgres
-----> Plugin postgres enabled
Triggering a plugin trigger
The plugin:trigger can be used to call any internal plugin trigger. This may have unintended consequences, and thus should only be called for development or debugging purposes.
dokku plugin:trigger some-internal-trigger args-go-here