* implement rolling restart functionality
bouncing each image individually can ensure that a group of docker
containers launched with docker-compose can stay 100% up during deploy.
* move rolling restart into a function
* honor params.Cleanup
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
* Adds scopeUID config to enable multiple instances of Watchtower
* Adds tests for multiple instance support with scopeuid
* Adds docs on scope monitoring and multiple instance support
* Adds multiple instances docs to mkdocs config file
* Changes multiple instances check and refactors naming for scope feature
* Applies linter suggestions
* Fixes documentation on Watchtower monitoring scope
* Revert "Image of running container no longer needed locally (#571)"
This reverts commit 6da66fb312.
* Update client.go
* fix: skip updating when no image info can be retrieved
This will allow watchtower to continue even though the image info for a
container cannot be retrieved. If this happens one warning will be emitted
and the container will be skipped, unless NoRestart or OnlyMonitor is supplied
The life-cycle messages should not have the same level as the update messages.
Why?
I receive a (mail-) notification for every run even if no image is changed:
```
2020-07-31 06:44:33 (info): Executing pre-check command.
```
But I only want to receive a notification if something changed:
```
2020-07-20 06:44:44 (info): Found new traefik:v2.2 image (sha256:7c992081f52423e325bd12debf0edcb4f7cfa398683c26f99c00112ec14e1ab9)
```
* Added string functions for lowercase, uppercase and capitalize to shoutrrr templates
* Update pkg/notifications/shoutrrr.go
Co-authored-by: nils måsén <nils@piksel.se>
* Update pkg/notifications/shoutrrr.go
Co-authored-by: nils måsén <nils@piksel.se>
* Update pkg/notifications/shoutrrr.go
Co-authored-by: nils måsén <nils@piksel.se>
* Update pkg/notifications/shoutrrr_test.go
Co-authored-by: nils måsén <nils@piksel.se>
* escape quotation marks in test
Co-authored-by: nils måsén <nils@piksel.se>
* Added HTTP API trigger to update running images
* Adds HTTP API authentication token parameter and handling
* Exposes port 8080 in Dockerfile to allow inter-container update triggering via HTTP API
* Fixes codacy issue
* Adds API usage doc
* Fix grammar
* Moves api logic to a package of its own
* Makes WT exit if token has not been set in HTTP API mode
* Adds lock to prevent concurrent updates when in HTTP API mode
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
* feat(update): add lifecycle hooks to the update action
* fix(ci): add bash tests for lifecycle-hooks to the ci workflow
* fix(ci): move integration tests to an isolated step
* fix(ci): fix malformed all-contributors json
* fix(ci): disable automatic bash test until we figure out a reasonable way to run it in circleci
This adds support for Gotify (https://gotify.net) notifications.
Work items:
* Two flags have been added to internal/flags/flags.go:
"notification-gotify-url" and "notification-gotify-token".
* A Gotify notification driver has been added in
notifications/gotify.go.
* "gotify" has been added to notification driver choices in
notifications/notifier.go.
* Docs have been updated