diff --git a/pkg/container/client.go b/pkg/container/client.go index c6c37de..c05e855 100644 --- a/pkg/container/client.go +++ b/pkg/container/client.go @@ -332,6 +332,12 @@ func (client dockerClient) HasNewImage(ctx context.Context, container t.Containe currentImageID := t.ImageID(container.ContainerInfo().ContainerJSONBase.Image) imageName := container.ImageName() + imageIDSetByLabel, ok := container.ContainerInfo().Config.Labels[originalImageIDLabel] + if ok { + currentImageID = t.ImageID(imageIDSetByLabel) + log.Infof("Original image id for %s found: (%s)", imageName, currentImageID.ShortID()) + } + newImageInfo, _, err := client.api.ImageInspectWithRaw(ctx, imageName) if err != nil { return false, currentImageID, err diff --git a/pkg/container/container.go b/pkg/container/container.go index 10ed677..280ba80 100644 --- a/pkg/container/container.go +++ b/pkg/container/container.go @@ -103,7 +103,7 @@ func (c Container) SafeImageID() wt.ImageID { // "latest" tag is assumed. func (c Container) ImageName() string { // Compatibility w/ Zodiac deployments - imageName, ok := c.getLabelValue(zodiacLabel) + imageName, ok := c.getLabelValue(originalImageNameLabel) if !ok { imageName = c.containerInfo.Config.Image } diff --git a/pkg/container/metadata.go b/pkg/container/metadata.go index 8ac5f34..7a1ffca 100644 --- a/pkg/container/metadata.go +++ b/pkg/container/metadata.go @@ -10,6 +10,8 @@ const ( noPullLabel = "com.centurylinklabs.watchtower.no-pull" dependsOnLabel = "com.centurylinklabs.watchtower.depends-on" zodiacLabel = "com.centurylinklabs.zodiac.original-image" + originalImageNameLabel = "com.centurylinklabs.watchtower.original-image" + originalImageIDLabel = "com.centurylinklabs.watchtower.original-image-id" scope = "com.centurylinklabs.watchtower.scope" preCheckLabel = "com.centurylinklabs.watchtower.lifecycle.pre-check" postCheckLabel = "com.centurylinklabs.watchtower.lifecycle.post-check"