docs: update documentation with new sections and improve clarity

This commit is contained in:
Jan Rundshagen 2025-03-29 13:11:47 +01:00 committed by Jan O. Rundshagen
parent ca0d37a4ac
commit d2a21afcfe
20 changed files with 128 additions and 73 deletions

View file

@ -1,3 +1,5 @@
# Arguments
By default, watchtower will monitor all containers running within the Docker daemon to which it is pointed (in most cases this
will be the local Docker daemon, but you can override it with the `--host` option described in the next section). However, you
can restrict watchtower to monitoring a subset of the running containers by specifying the container names as arguments when
@ -33,14 +35,16 @@ Some arguments can also reference a file, in which case the contents of the file
This can be used to avoid putting secrets in the configuration file or command line.
The following arguments are currently supported (including their corresponding `WATCHTOWER_` environment variables):
- `notification-url`
- `notification-email-server-password`
- `notification-slack-hook-url`
- `notification-msteams-hook`
- `notification-gotify-token`
- `http-api-token`
- `notification-url`
- `notification-email-server-password`
- `notification-slack-hook-url`
- `notification-msteams-hook`
- `notification-gotify-token`
- `http-api-token`
### Example docker-compose usage
```yaml
secrets:
access_token:
@ -55,6 +59,7 @@ services:
```
## Help
Shows documentation about the supported flags.
```text
@ -65,6 +70,7 @@ Environment Variable: N/A
```
## Time Zone
Sets the time zone to be used by WatchTower's logs and the optional Cron scheduling argument (--schedule). If this environment variable is not set, Watchtower will use the default time zone: UTC.
To find out the right value, see [this list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), find your location and use the value in _TZ Database Name_, e.g _Europe/Rome_. The timezone can alternatively be set by volume mounting your hosts /etc/localtime file. `-v /etc/localtime:/etc/localtime:ro`
@ -76,6 +82,7 @@ Environment Variable: TZ
```
## Cleanup
Removes old images after updating. When this flag is specified, watchtower will remove the old image after restarting a container with a new image. Use this option to prevent the accumulation of orphaned images on your system as containers are updated.
```text
@ -86,6 +93,7 @@ Environment Variable: WATCHTOWER_CLEANUP
```
## Remove anonymous volumes
Removes anonymous volumes after updating. When this flag is specified, watchtower will remove all anonymous volumes from the container before restarting with a new image. Named volumes will not be removed!
```text
@ -96,6 +104,7 @@ Environment Variable: WATCHTOWER_REMOVE_VOLUMES
```
## Debug
Enable debug mode with verbose logging.
!!! note "Notes"
@ -110,6 +119,7 @@ Environment Variable: WATCHTOWER_DEBUG
```
## Trace
Enable trace mode with very verbose logging. Caution: exposes credentials!
!!! note "Notes"
@ -146,6 +156,7 @@ Environment Variable: WATCHTOWER_LOG_FORMAT
```
## ANSI colors
Disable ANSI color escape codes in log output.
```text
@ -156,6 +167,7 @@ Environment Variable: NO_COLOR
```
## Docker host
Docker daemon socket to connect to. Can be pointed at a remote Docker host by specifying a TCP endpoint as "tcp://hostname:port".
```text
@ -166,6 +178,7 @@ Environment Variable: DOCKER_HOST
```
## Docker API version
The API version to use by the Docker client for connecting to the Docker daemon. The minimum supported version is 1.44.
```text
@ -176,6 +189,7 @@ Environment Variable: DOCKER_API_VERSION
```
## Include restarting
Will also include restarting containers.
```text
@ -186,6 +200,7 @@ Environment Variable: WATCHTOWER_INCLUDE_RESTARTING
```
## Include stopped
Will also include created and exited containers.
```text
@ -196,6 +211,7 @@ Environment Variable: WATCHTOWER_INCLUDE_STOPPED
```
## Revive stopped
Start any stopped containers that have had their image updated. This argument is only usable with the `--include-stopped` argument.
```text
@ -206,6 +222,7 @@ Environment Variable: WATCHTOWER_REVIVE_STOPPED
```
## Poll interval
Poll interval (in seconds). This value controls how frequently watchtower will poll for new images. Either `--schedule` or a poll interval can be defined, but not both.
```text
@ -216,6 +233,7 @@ Environment Variable: WATCHTOWER_POLL_INTERVAL
```
## Filter by enable label
Monitor and update containers that have a `com.centurylinklabs.watchtower.enable` label set to true.
```text
@ -226,11 +244,13 @@ Environment Variable: WATCHTOWER_LABEL_ENABLE
```
## Filter by disable label
__Do not__ Monitor and update containers that have `com.centurylinklabs.watchtower.enable` label set to false and
no `--label-enable` argument is passed. Note that only one or the other (targeting by enable label) can be
used at the same time to target containers.
## Filter by disabling specific container names
Monitor and update containers whose names are not in a given set of names.
This can be used to exclude specific containers, when setting labels is not an option.
@ -244,6 +264,7 @@ Environment Variable: WATCHTOWER_DISABLE_CONTAINERS
```
## Without updating containers
Will only monitor for new images, send notifications and invoke
the [pre-check/post-check hooks](https://watchtower.devcdn.net/lifecycle-hooks/), but will __not__ update the
containers.
@ -276,8 +297,10 @@ Environment Variable: WATCHTOWER_LABEL_TAKE_PRECEDENCE
```
## Without restarting containers
Do not restart containers after updating. This option can be useful when the start of the containers
is managed by an external system such as systemd.
```text
Argument: --no-restart
Environment Variable: WATCHTOWER_NO_RESTART
@ -286,6 +309,7 @@ Environment Variable: WATCHTOWER_NO_RESTART
```
## Without pulling new images
Do not pull new images. When this flag is specified, watchtower will not attempt to pull
new images from the registry. Instead it will only monitor the local image cache for changes.
Use this option if you are building new images directly on the Docker host without pushing
@ -304,6 +328,7 @@ Note that no-pull can also be specified on a per-container basis with the
See [With label taking precedence over arguments](#With-label-taking-precedence-over-arguments) for behavior when both argument and label are set
## Without sending a startup message
Do not send a message after watchtower started. Otherwise there will be an info-level notification.
```text
@ -324,6 +349,7 @@ Environment Variable: WATCHTOWER_RUN_ONCE
```
## HTTP API Mode
Runs Watchtower in HTTP API mode, only allowing image updates to be triggered by an HTTP request.
For details see [HTTP API](https://watchtower.devcdn.net/http-api-mode).
@ -335,6 +361,7 @@ Environment Variable: WATCHTOWER_HTTP_API_UPDATE
```
## HTTP API Token
Sets an authentication token to HTTP API requests.
Can also reference a file, in which case the contents of the file are used.
@ -346,6 +373,7 @@ Environment Variable: WATCHTOWER_HTTP_API_TOKEN
```
## HTTP API periodic polls
Keep running periodic updates if the HTTP API mode is enabled, otherwise the HTTP API would prevent periodic polls.
```text
@ -356,6 +384,7 @@ Environment Variable: WATCHTOWER_HTTP_API_PERIODIC_POLLS
```
## Filter by scope
Update containers that have a `com.centurylinklabs.watchtower.scope` label set with the same value as the given argument.
This enables [running multiple instances](https://watchtower.devcdn.net/running-multiple-instances).
@ -372,6 +401,7 @@ Environment Variable: WATCHTOWER_SCOPE
```
## HTTP API Metrics
Enables a metrics endpoint, exposing prometheus metrics via HTTP. See [Metrics](metrics.md) for details.
```text
@ -382,6 +412,7 @@ Environment Variable: WATCHTOWER_HTTP_API_METRICS
```
## Scheduling
[Cron expression](https://pkg.go.dev/github.com/robfig/cron@v1.2.0?tab=doc#hdr-CRON_Expression_Format) in 6 fields (rather than the traditional 5) which defines when and how often to check for new images. Either `--interval` or the schedule expression
can be defined, but not both. An example: `--schedule "0 0 4 * * *"`
@ -393,6 +424,7 @@ Environment Variable: WATCHTOWER_SCHEDULE
```
## Rolling restart
Restart one image at time instead of stopping and starting all at once. Useful in conjunction with lifecycle hooks
to implement zero-downtime deploy.
@ -404,6 +436,7 @@ Environment Variable: WATCHTOWER_ROLLING_RESTART
```
## Wait until timeout
Timeout before the container is forcefully stopped. When set, this option will change the default (`10s`) wait time to the given value. An example: `--stop-timeout 30s` will set the timeout to 30 seconds.
```text
@ -455,10 +488,10 @@ Writes the session results to STDOUT using a stable, machine-readable format (in
Alias for:
```text
--notification-url logger://
--notification-log-stdout
--notification-report
--notification-template porcelain.VERSION.summary-no-log
--notification-url logger://
--notification-log-stdout
--notification-report
--notification-template porcelain.VERSION.summary-no-log
Argument: --porcelain, -P
Environment Variable: WATCHTOWER_PORCELAIN