mirror of
https://github.com/containrrr/watchtower.git
synced 2025-09-22 05:40:50 +02:00
do not delete same image twice when cleaning up
This commit is contained in:
parent
42a349c423
commit
a2a62fb46e
3 changed files with 171 additions and 84 deletions
|
@ -3,6 +3,7 @@ package actions
|
|||
import (
|
||||
"github.com/containrrr/watchtower/internal/util"
|
||||
"github.com/containrrr/watchtower/pkg/container"
|
||||
"github.com/deckarep/golang-set"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@ -73,11 +74,22 @@ func stopStaleContainer(container container.Container, client container.Client,
|
|||
}
|
||||
|
||||
func restartContainersInSortedOrder(containers []container.Container, client container.Client, params UpdateParams) {
|
||||
toDelete := mapset.NewSet()
|
||||
for _, container := range containers {
|
||||
if !container.Stale {
|
||||
continue
|
||||
}
|
||||
restartStaleContainer(container, client, params)
|
||||
toDelete.Add(container)
|
||||
}
|
||||
if params.Cleanup {
|
||||
iterator := toDelete.Iterator()
|
||||
for c := range iterator.C {
|
||||
cont := c.(container.Container)
|
||||
if err := client.RemoveImage(cont); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,12 +112,6 @@ func restartStaleContainer(container container.Container, client container.Clien
|
|||
executePostUpdateCommand(client, newContainerID)
|
||||
}
|
||||
}
|
||||
|
||||
if params.Cleanup {
|
||||
if err := client.RemoveImage(container); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func checkDependencies(containers []container.Container) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue