mirror of
https://github.com/containrrr/watchtower.git
synced 2025-12-14 06:06:38 +01:00
always exclude containers that have the com.centurylinklabs.watchtower.enable set to false.
Fixes #169
This commit is contained in:
parent
026a04b59b
commit
6c12aee975
2 changed files with 29 additions and 3 deletions
12
README.md
12
README.md
|
|
@ -131,6 +131,18 @@ docker run -d --label=com.centurylinklabs.watchtower.stop-signal=SIGHUP someimag
|
||||||
|
|
||||||
By default, watchtower will watch all containers. However, sometimes only some containers should be updated.
|
By default, watchtower will watch all containers. However, sometimes only some containers should be updated.
|
||||||
|
|
||||||
|
If you need to exclude some containers, set the *com.centurylinklabs.watchtower.enable* label to `false`.
|
||||||
|
|
||||||
|
```docker
|
||||||
|
LABEL com.centurylinklabs.watchtower.enable="false"
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, it can be specified as part of the `docker run` command line:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --label=com.centurylinklabs.watchtower.enable=false someimage
|
||||||
|
```
|
||||||
|
|
||||||
If you need to only include only some containers, pass the --label-enable flag on startup and set the *com.centurylinklabs.watchtower.enable* label with a value of true for the containers you want to watch.
|
If you need to only include only some containers, pass the --label-enable flag on startup and set the *com.centurylinklabs.watchtower.enable* label with a value of true for the containers you want to watch.
|
||||||
|
|
||||||
```docker
|
```docker
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,23 @@ func filterByNames(names []string, baseFilter Filter) Filter {
|
||||||
// Filters out containers that don't have the 'enableLabel'
|
// Filters out containers that don't have the 'enableLabel'
|
||||||
func filterByEnableLabel(baseFilter Filter) Filter {
|
func filterByEnableLabel(baseFilter Filter) Filter {
|
||||||
return func(c FilterableContainer) bool {
|
return func(c FilterableContainer) bool {
|
||||||
// If label filtering is enabled, containers should only be enabled
|
// If label filtering is enabled, containers should only be considered
|
||||||
// if the label is specifically set to true.
|
// if the label is specifically set.
|
||||||
|
_, ok := c.Enabled()
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseFilter(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filters out containers that have a 'enableLabel' and is set to disable.
|
||||||
|
func filterByDisabledLabel(baseFilter Filter) Filter {
|
||||||
|
return func(c FilterableContainer) bool {
|
||||||
enabledLabel, ok := c.Enabled()
|
enabledLabel, ok := c.Enabled()
|
||||||
if !ok || !enabledLabel {
|
if ok && !enabledLabel {
|
||||||
|
// If the label has been set and it demands a disable
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,5 +70,6 @@ func BuildFilter(names []string, enableLabel bool) Filter {
|
||||||
// if the label is specifically set.
|
// if the label is specifically set.
|
||||||
filter = filterByEnableLabel(filter)
|
filter = filterByEnableLabel(filter)
|
||||||
}
|
}
|
||||||
|
filter = filterByDisabledLabel(filter)
|
||||||
return filter
|
return filter
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue