![]() |
2 months ago | |
---|---|---|
log | 5 years ago | |
.dockerignore | 4 years ago | |
.drone.yml | 4 years ago | |
.gitignore | 3 years ago | |
Dockerfile | 4 years ago | |
LICENSE | 5 years ago | |
README.md | 4 years ago | |
client.go | 4 years ago | |
cron.go | 4 years ago | |
docker-compose.yml | 4 years ago | |
docker-stack.yml | 2 months ago | |
env.go | 5 years ago | |
env_test.go | 5 years ago | |
go.mod | 4 years ago | |
go.sum | 2 months ago | |
main.go | 4 years ago | |
swarm.go | 4 years ago | |
swarm_test.go | 4 years ago | |
tools.go | 5 years ago | |
version.go | 4 years ago |
README.md
Swarm Updater
Automatically update Docker services whenever their image is updated. Inspired on v2tec/watchtower
Options
Every command-line option has their corresponding environment variable to configure the updater.
--host, -H
Docker daemon socket to connect to. Defaults to "unix:///var/run/docker.sock" but can be pointed at a remote Docker host by specifying a TCP endpoint as "tcp://hostname:port". The host value can also be provided by setting theDOCKER_HOST
environment variable.--config, -c
Docker client configuration path. In this directory goes aconfig.json
file with the credentials of the private registries. Defaults to~/.docker
.The path value can also be provided by setting theDOCKER_CONFIG
environment variable.--schedule, -s
Cron expression in 6 fields (rather than the traditional 5) which defines when and how often to check for new images. An example:--schedule "0 0 4 * * *"
. The schedule can also be provided by setting theSCHEDULE
environment variable. Defaults to 5 minutes.--label-enable, -l
Watch services where thexyz.megpoid.swarm-updater.enable
label is set to true. The flag can also be provided by setting theLABEL_ENABLE
environment variable to1
.--blacklist, -b
Service that is excluded from updates. Can be defined multiple times and can be a regular expression. Either--label-enable
or--blacklist
can be defined, but not both. The comma separated list can also be provided by setting theBLACKLIST
environment variable.--tlsverify, -t
Use TLS when connecting to the Docker socket and verify the server's certificate. The flag can also be provided by setting theDOCKER_TLS_VERIFY
environment variable to1
.--debug, -d
Enables debug logging. Can also be enabled by setting theDEBUG=1
environment variable.--help, -h
Show documentation about the supported flags.
Other environment variables
DOCKER_API_VERSION
to set the version of the API to reach, leave empty to use the minimum required for the app.DOCKER_CERT_PATH
is the directory to load the certificates from. Used when--host
is a TCP endpoint.
Private registry auth
A file must be placed on ~/.docker/config.json
with the registry credentials (can be overriden with --config
or DOCKER_CONFIG
). The file can be created by using docker login <registry>
and saving the credentials.
Delay swarm-updater to be the last updated service
You must add the xyz.megpoid.swarm-updater=true
label to your service so the updater can delay the update of itself as the last one.
Only update the image but don't run the container
You must add the xyz.megpoid.swarm-updater.update-only=true
label to your service so only the image will be updated (useful for cron tasks where the container isn't running most of the time). Note: the service will be reconfigured with replicas: 0
so this does nothing with global replication.