func CheckForMultipleWatchtowerInstances(client container.Client, cleanup bool, scope string) error {
	containers, err := client.ListContainers(filters.FilterByScope(scope, filters.WatchtowerContainersFilter))
	if err != nil {
		return err
	}
	if len(containers) <= 1 {
		log.Debug("There are no additional watchtower containers")
		return nil
	}
	log.Info("Found multiple running watchtower instances. Cleaning up.")
	return cleanupExcessWatchtowers(containers, client, cleanup)
}
CheckForMultipleWatchtowerInstances will ensure that there are not multiple instances of the
watchtower running simultaneously. If multiple watchtower containers are detected, this function
will stop and remove all but the most recently started container. This behaviour can be bypassed
if a scope UID is defined.
package actions
import (
	"fmt"
	"github.com/containrrr/watchtower/pkg/types"
	"sort"
	"time"
	"github.com/containrrr/watchtower/pkg/filters"
	"github.com/containrrr/watchtower/pkg/sorter"
	log "github.com/sirupsen/logrus"
	"github.com/containrrr/watchtower/pkg/container"
)
func CheckForSanity(client container.Client, filter types.Filter, rollingRestarts bool) error {
	log.Debug("Making sure everything is sane before starting")
	if rollingRestarts {
		containers, err := client.ListContainers(filter)
		if err != nil {
			return err
		}
		for _, c := range containers {
			if len(c.Links()) > 0 {
				return fmt.Errorf(
					"%q is depending on at least one other container. This is not compatible with rolling restarts",
					c.Name(),
				)
			}
		}
	}
	return nil
}