This commit is contained in:
Amin Faez 2024-05-09 15:34:04 +00:00 committed by GitHub
commit 12d978c3fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 15 additions and 1 deletions

View file

@ -329,9 +329,17 @@ func (client dockerClient) IsContainerStale(container t.Container, params t.Upda
}
func (client dockerClient) HasNewImage(ctx context.Context, container t.Container) (hasNew bool, latestImage t.ImageID, err error) {
currentImageID := t.ImageID(container.ContainerInfo().ContainerJSONBase.Image)
container_info := container.ContainerInfo()
currentImageID := t.ImageID(container_info.ContainerJSONBase.Image)
imageName := container.ImageName()
// If the original-image-id label is set, it overwrites the image id reported by docker
imageIDSetByLabel, ok := container_info.Config.Labels[originalImageIDLabel]
if ok {
currentImageID = t.ImageID(imageIDSetByLabel)
log.Debugf("Original image id for %s found: (%s)", imageName, currentImageID.ShortID())
}
newImageInfo, _, err := client.api.ImageInspectWithRaw(ctx, imageName)
if err != nil {
return false, currentImageID, err

View file

@ -104,6 +104,10 @@ func (c Container) SafeImageID() wt.ImageID {
func (c Container) ImageName() string {
// Compatibility w/ Zodiac deployments
imageName, ok := c.getLabelValue(zodiacLabel)
// If the original-image-name label is set, it overwrites the image name reported by docker
if !ok {
imageName, ok = c.getLabelValue(originalImageNameLabel)
}
if !ok {
imageName = c.containerInfo.Config.Image
}

View file

@ -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"