Updating Nautical
Updating Nautical (and any container) is a balance between convenience, reliability and security.
Updating your container can bring new features, bug fixes and security patches, but can also introduce unintended behavior.
Understanding Semantic Versioning¶
Semver is a means to communicate the changes to an application just by looking at the version number. Nautical uses Semver like this.
vMAJOR.MINOR.PATCH
, for example:
- MAJOR - A large change that breaks/reworks an existing feature.
- This usually means you will need to change the Nautical configuration.
- MINOR - Add functionality in a backward compatible manner.
- Everything should continue working without changes to the Nautical configuration.
- PATCH - A small change such as updating a dependency, log output, or minor fix.
- From the user perspective, nothing will have changed, but under the hood, small improvements were made.
Manual Updates¶
To manually update Nautical, simply re-deploy using either of these configs, but specify the latest version of the Nautical.
Currently, the latest version of Nautical is . (do not add the v
)
This will need to be done each time a new version is released.
services:
nautical-backup:
image: minituff/nautical-backup:2.9.3 # Change this to the latest version
# Rest of config...
docker run -d \
--name nautical-backup \
-v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
-v /config:/config \ #(9)!
-v /source:/app/source \ #(2)!
-v /destination:/app/destination \ #(3)!
minituff/nautical-backup:2.9.3
# Update the version number in the line above
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
Automatic Updates¶
Watchtower is an excellent tool to keep your Docker containers updated.
While convenient, automatic updates may break things. For this reason we recommend only automatically updating to the latest PATCH
version.
These examples only specify the Semver vMAJOR.MINOR
numbers, leaving PATCH
out--this means that Watchtower will update the PATCH
number if available.
services:
nautical-backup:
image: minituff/nautical-backup:2.9 #(7)!
# Rest of config...
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: nautical-backup # (9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.
docker run -d \
--name nautical-backup \
-v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
-v /config:/config \ #(9)!
-v /source:/app/source \ #(2)!
-v /destination:/app/destination \ #(3)!
minituff/nautical-backup:2.9 #(7)!
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
nautical-backup #(9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.
These examples specify the Semver vMAJOR
number, leaving MINOR
PATCH
out--this means that Watchtower will update MINOR
and PATCH
versions if available.
services:
nautical-backup:
image: minituff/nautical-backup:2
# Rest of config...
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: nautical-backup # (9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.
docker run -d \
--name nautical-backup \
-v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
-v /config:/config \ #(9)!
-v /source:/app/source \ #(2)!
-v /destination:/app/destination \ #(3)!
minituff/nautical-backup:2
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
nautical-backup #(9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.
If you're really feeling like living on the bleeding edge. You can use the latest
tag to ensure you are always up to date.
This will get the latest Semver MAJOR
, MINOR
, and PATCH
updates.
This will most likely break things at some point
If you go this route, just ensure you aren't using Nautical for anything mission critical, and be prepared to either help troubleshoot or wait for a new version with a bug fix.
This is an example of using Watchtower to keep Nautical on the latest
version.
services:
nautical-backup:
image: minituff/nautical-backup:latest
# Rest of config...
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: nautical-backup # (9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.
docker run -d \
--name nautical-backup \
-v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
-v /config:/config \ #(9)!
-v /source:/app/source \ #(2)!
-v /destination:/app/destination \ #(3)!
minituff/nautical-backup:latest
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
nautical-backup #(9)!
- Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
- Mount the
source
directory. - Mount the
destination
directory. - TIP: Avoid using "quotes" in the enviornment variables.
- Scheduled time to run backups. Use this website to help pick a CRON schedule.
- Default =
0 4 * * *
- Every day at 4am.
- Default =
- Containers to skip for backup. A comma seperated list.
- It is recommended to avoid using the
latest
tag.- This project is under active development, using a exact tag can help avoid updates breaking things.
- Set the time-zone. See this Wikipedia page for a list of available time-zones.
- Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
-
Which containers to use.
Remove this line to update all containers.