154 lines
6.2 KiB
Markdown
154 lines
6.2 KiB
Markdown
# Upgrading
|
|
|
|
If your version of Dokku is pre 0.3.0 (check with `dokku version`), we recommend [a fresh install](/docs/getting-started/installation/index.md) on a new server.
|
|
|
|
## Security Updates
|
|
|
|
For any security related updates, please follow our [Twitter account](https://twitter.com/dokku). As Dokku does not run any daemons, the security risk introduced by our software is minimal.
|
|
|
|
Your operating system may occasionally provide security updates. We recommend setting unattended upgrades for your operating system. Here are some helpful links:
|
|
|
|
- [Arch Linux System Maintenance](https://wiki.archlinux.org/index.php/System_maintenance)
|
|
- [Debian Unattended Upgrades](https://wiki.debian.org/UnattendedUpgrades)
|
|
- [Ubuntu Unattended Upgrades](https://help.ubuntu.com/community/AutomaticSecurityUpdates)
|
|
|
|
Docker releases updates periodically to their engine. We recommend reading their release notes and upgrading accordingly. Please see the [Docker documentation](https://docs.docker.com/) for more details.
|
|
|
|
## Migration Guides
|
|
|
|
Before upgrading, check the migration guides to get comfortable with new features and prepare your deployment to be upgraded.
|
|
|
|
- [Upgrading to 0.35](/docs/appendices/0.35.0-migration-guide.md)
|
|
- [Upgrading to 0.34](/docs/appendices/0.34.0-migration-guide.md)
|
|
- [Upgrading to 0.33](/docs/appendices/0.33.0-migration-guide.md)
|
|
- [Upgrading to 0.32](/docs/appendices/0.32.0-migration-guide.md)
|
|
- [Upgrading to 0.31](/docs/appendices/0.31.0-migration-guide.md)
|
|
- [Upgrading to 0.30](/docs/appendices/0.30.0-migration-guide.md)
|
|
- [Upgrading to 0.29](/docs/appendices/0.29.0-migration-guide.md)
|
|
- [Upgrading to 0.28](/docs/appendices/0.28.0-migration-guide.md)
|
|
- [Upgrading to 0.27](/docs/appendices/0.27.0-migration-guide.md)
|
|
- [Upgrading to 0.26](/docs/appendices/0.26.0-migration-guide.md)
|
|
- [Upgrading to 0.25](/docs/appendices/0.25.0-migration-guide.md)
|
|
- [Upgrading to 0.24](/docs/appendices/0.24.0-migration-guide.md)
|
|
- [Upgrading to 0.23](/docs/appendices/0.23.0-migration-guide.md)
|
|
- [Upgrading to 0.22](/docs/appendices/0.22.0-migration-guide.md)
|
|
- [Upgrading to 0.21](/docs/appendices/0.21.0-migration-guide.md)
|
|
- [Upgrading to 0.20](/docs/appendices/0.20.0-migration-guide.md)
|
|
- [Upgrading to 0.10](/docs/appendices/0.10.0-migration-guide.md)
|
|
- [Upgrading to 0.9](/docs/appendices/0.9.0-migration-guide.md)
|
|
- [Upgrading to 0.8](/docs/appendices/0.8.0-migration-guide.md)
|
|
- [Upgrading to 0.7](/docs/appendices/0.7.0-migration-guide.md)
|
|
- [Upgrading to 0.6](/docs/appendices/0.6.0-migration-guide.md)
|
|
- [Upgrading to 0.5](/docs/appendices/0.5.0-migration-guide.md)
|
|
|
|
## Upgrade Process
|
|
|
|
### Before upgrading
|
|
|
|
If you'll be updating docker or the herokuish package simultaneously, it's recommended
|
|
that you stop all applications before upgrading and rebuild afterwards. This is not
|
|
required if the upgrade only impacts the `dokku` package.
|
|
|
|
Why do we recommend stopping all apps?
|
|
|
|
- `docker`: Containers may be randomly reset during the upgrade process, resulting in
|
|
requests being sent to the wrong containers. Acknowledging and scheduling downtime
|
|
thus becomes much more important.
|
|
- `herokuish`: While not required, it may be useful to take advantage of the latest
|
|
base image. Herokuish changes do not cause issues unless the base OS changes, which
|
|
may happen in minor or major releases.
|
|
|
|
```shell
|
|
# for 0.22.0 and newer versions, use
|
|
dokku ps:stop --all
|
|
|
|
# for versions between 0.11.4 and 0.21.4, use
|
|
dokku ps:stopall
|
|
|
|
# for versions between 0.8.1 and 0.11.3, use
|
|
dokku --quiet apps:list | xargs -L1 dokku ps:stop
|
|
|
|
# for versions older than 0.8.1, use
|
|
dokku --quiet apps | xargs -L1 dokku ps:stop
|
|
```
|
|
|
|
### Upgrading
|
|
|
|
> [!IMPORTANT]
|
|
> Unless specified, the `bootstrap.sh` script installs Dokku via a Debian package (`.deb`). Using either the `dokku-update` or `apt` methods are enough to perform an upgrade of Dokku.
|
|
|
|
Please read the migration guides for each version in between your currently installed version of Dokku and the version you are upgrading to in order to ensure minimal downtime.
|
|
|
|
#### Upgrading using `dokku-update`
|
|
|
|
> [!WARNING]
|
|
> The `dokku-update` package currently does not support upgrading to a specific version of Dokku. If this is required by a particular migration guide, use the `apt` method for upgrading.
|
|
|
|
We provide a helpful binary called `dokku-update`. This is a recommended package that:
|
|
|
|
- Can be installed separately, so upgrading Dokku will not affect the running of this package.
|
|
- Automates many of the upgrade instructions for you.
|
|
- Provides a clean way for us to further enhance the upgrade process in the future.
|
|
|
|
This binary is available on Debian and RPM-based systems from our package repositories under the name `dokku-update`. When installing from source,
|
|
this is available from a separate Github repository at [dokku/dokku-update](https://github.com/dokku/dokku-update).
|
|
|
|
#### Upgrading using `apt`
|
|
|
|
If Dokku was installed in a Debian or Ubuntu system, via `apt-get install dokku` or `bootstrap.sh`, you can upgrade with `apt-get`:
|
|
|
|
```shell
|
|
# update your local apt cache
|
|
sudo apt-get update
|
|
|
|
# update dokku and its dependencies
|
|
sudo apt-get --no-install-recommends install dokku herokuish sshcommand plugn gliderlabs-sigil dokku-update dokku-event-listener
|
|
|
|
# or just upgrade every package:
|
|
sudo apt-get upgrade
|
|
```
|
|
|
|
To upgrade to a specific version of Dokku, specify it on the `apt-get` call:
|
|
|
|
```shell
|
|
# specify the version _without_ the `v` prefix
|
|
sudo apt-get dokku=$VERSION
|
|
```
|
|
|
|
#### Upgrading from source
|
|
|
|
> [!CAUTION]
|
|
> Dokku is not normally installed from source. Executing a source upgrade when the installation was performed via apt package may result in an inoperable system and will require manual work to get Dokku in a working state.
|
|
|
|
If you installed Dokku from source (less common), upgrade with:
|
|
|
|
```shell
|
|
cd ~/dokku
|
|
git pull --tags origin master
|
|
|
|
# continue to install from source
|
|
sudo DOKKU_BRANCH=master make install
|
|
|
|
# upgrade to debian package-based installation
|
|
sudo make install
|
|
```
|
|
|
|
To upgrade Herokuish from source, upgrade with:
|
|
|
|
```shell
|
|
cd /tmp
|
|
git clone https://github.com/gliderlabs/herokuish.git
|
|
cd herokuish
|
|
CIRCLECI=true IMAGE_NAME=gliderlabs/herokuish BUILD_TAG=latest make build/docker
|
|
```
|
|
|
|
### After upgrading
|
|
|
|
After upgrading, you should rebuild the applications to take advantage of any
|
|
new buildpacks that were released:
|
|
|
|
```shell
|
|
dokku ps:rebuild --all
|
|
```
|
|
|