Watchtower: Unable to update container

Created on 16 Mar 2017  路  9Comments  路  Source: containrrr/watchtower

My docker-compose file (in a private repo):

version: "3"
services:
  cavo:
    image: adventhp/cavo:docker
    env_file:
      - app.docker.env
    ports:
      - "443:3443"
      - "80:3080"
    entrypoint: ["pm2-docker", "/home/code/process.yml"]
  watchtower:
    image: v2tec/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker/config.json:/config.json

I'm starting this as root with:

docker-compose up

My log files show that watchtower is checking for updates every 5 minutes, but instead of pulling the latest image, I see this message in the logfile:

watchtower_1  | time="2017-03-16T04:50:32Z" level=info msg="Unable to update container /ubuntu_cavo_1. Proceeding to next."

I've verified the location and validity of both volumes.
I have no problem issuing a docker pull adventhp/cavo:docker command.

Most helpful comment

Yes, prepending with the registry url solved the issue:

version: "3"
services:
  cavo:
    image: index.docker.io/adventhp/cavo:docker
    env_file:
      - app.docker.env
    ports:
      - "443:3443"
      - "80:3080"
    entrypoint: ["pm2-docker", "/home/code/process.yml"]
  watchtower:
    image: v2tec/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker/config.json:/config.json

I suggested in #55 that you grab this value from the config.json file and prepend it.

All 9 comments

Could you please provide the debug watchtower output by using --debug? This should give us a little more information on what's going on.

Is adventhp/cavo:docker a private image? Then I suspect you are facing #55. Debug output should clarify the situation...

Yes, prepending with the registry url solved the issue:

version: "3"
services:
  cavo:
    image: index.docker.io/adventhp/cavo:docker
    env_file:
      - app.docker.env
    ports:
      - "443:3443"
      - "80:3080"
    entrypoint: ["pm2-docker", "/home/code/process.yml"]
  watchtower:
    image: v2tec/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker/config.json:/config.json

I suggested in #55 that you grab this value from the config.json file and prepend it.

It seems that this bug is still not fixed. Saw it on 0.3.
Any plans to publish the fix?
Thanks!

Same issue here

same problem

Almost 3 years since this was closed, but still an issue...

There really isn't any great way to fix this, as users may have multiple sources for images, some private, some public. The fix, for now, is to prepend the image name with the URL.

I'm sorry for any inconvenience this may cause you, but can't think of a safe and generic way to solve this with code.

What about adding an optional label to define the full image url, including the registry and image path?

This way we could keep using the image names, but optionally fix Watchtower support with an extra label.

EDIT: Or even a label that just defines the registry name should be enough, right?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ag0r4n picture ag0r4n  路  4Comments

michael-siebers picture michael-siebers  路  5Comments

7imbrook picture 7imbrook  路  7Comments

darox picture darox  路  5Comments

ghost picture ghost  路  4Comments