diff --git a/docker/helper/helper.go b/docker/helper/helper.go index 1723dc7..c829b8c 100644 --- a/docker/helper/helper.go +++ b/docker/helper/helper.go @@ -2,11 +2,9 @@ package helper import ( "context" - "crypto" "docker-updater/config" "docker-updater/constant" "docker-updater/contextutil" - "encoding/hex" "fmt" "io" "log/slog" @@ -55,15 +53,9 @@ type ( name string image Image status container.ContainerState - labels Labels appliedConfiguration config.ContainerConfiguration } - Labels struct { - labels map[string]string - hash string - } - Image struct { id string name string @@ -169,9 +161,10 @@ func (w *watcher) Watch(ctx context.Context, dh *DockerHelper) { for _, runningContainer := range runningContainers { if foundContainer, ok := dh.w.cache.containers[runningContainer.name]; ok { - if runningContainer.labels.hash != foundContainer.c.labels.hash { - foundContainer.c = runningContainer - dh.w.cache.containers[runningContainer.name] = foundContainer + if runningContainer.id != foundContainer.c.id { + dh.w.cache.containers[runningContainer.name] = cacheEntry{ + c: runningContainer, + } dh.w.containersEventCallback(ContainerEvent{ ctx: ctx, @@ -437,7 +430,6 @@ func (dh *DockerHelper) parseContainer(ctx context.Context, container container. id: container.ID, name: name, status: container.State, - labels: convertLabels(container.Labels), appliedConfiguration: config, image: Image{ id: container.ImageID, @@ -459,22 +451,6 @@ func formatName(names []string) string { return name } -func convertLabels(labels map[string]string) Labels { - var p string - - for key, value := range labels { - p += key + ":" + value - } - - md5 := crypto.MD5.New() - hash := md5.Sum([]byte(p)) - - return Labels{ - labels: labels, - hash: hex.EncodeToString(hash), - } -} - func (dh *DockerHelper) parseLocalConfiguration(labels map[string]string) (config.ContainerConfiguration, error) { c := dh.config.GlobalContainerConfiguration diff --git a/runtime/runtime.go b/runtime/runtime.go index 18012a1..1350ec2 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -218,6 +218,11 @@ func (el *EventLoop) process(ev helper.ContainerEvent) { case helper.DeletedContainer: { el.unregister(container) + slog.Info("a container was unregistered", + "thread", "event_loop", + "container_name", container.Name(), + "container_id", container.ID(), + ) } case helper.UpdatedContainer: {