What's up docker? How to keep your containers up to date

Same here. And I though that I can somehow update from GUI or from actionable notification. Is that possible please? :slight_smile:

I just run into the problem:

 toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Could anybody advise how to avoid that pls?

Iā€™m using watchover for updating my containers. I set it up to do update without question. It can be set up just to notify you there is a new version, but this is to much hassle for me. It can notify you on telegram account when the last run was made and what containers were updated.

  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    environment:
      - "WATCHTOWER_INCLUDE_RESTARTING=true"
      - "WATCHTOWER_CLEANUP=true" 
      - "WATCHTOWER_POLL_INTERVAL=86400"
      - "WATCHTOWER_NOTIFICATION_REPORT=true"
      - "WATCHTOWER_NOTIFICATION_URL=telegram://xxxx@telegram/?chats=xxxxx"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Sorry to hijack the thread, but can anyone tell me why most of my update entities arenā€™t reporting the current container version correctly please?

Could somebody pls explain me if the trigger Docker or Docker-compose actually triggering the upgrade of containers? I cannot figure it out. Thank you!

Yes, it does.
As mentioned in the doc, this trigger will:

  • Update the related docker-compose.yml file
  • Clone the existing container specification
  • Pull the new image
  • Stop the existing container
  • Remove the existing container
  • Create the new container
  • Start the new container (if the previous one was running)
  • Remove the previous image (optionally)

Thanks, but will docker trigger actually do anything if i run every container by docker-compose?

Yes, it will.
But your docker-compose.yml file wonā€™t be in sync with the current state of your containers anymore.

That means that the next time youā€™ll perform a docker compose up -d, it will revert your containers to the versions described in the docker-compose.yml file.

Thatā€™s why you must use the docker-compose trigger and not the docker trigger in your situation.

1 Like

Thanks! So it works that it will update the container no matter version stated in docker-compose? Perphaps this is why it errored to run Postgress after upgrade since it is part of Paperless ngx docker compose where version 15 is stated. When I use docker-compose trigger will WUD respect the versions in file please?
How I can update for example docker-compose of Nextcloud running on another server please? It is not possible currently right?
And ā€¦I removed all the triggers except Discord as until I figure out how I will update all containers manually. But I am getting this error:
Error when processing some containers (Cannot read properties of undefined (reading 'tag'))
Any idea why please?

And sorry for my questions, I might have quite a chaos in my head :slight_smile:

Iā€™m watching a number of containers without issue, but I have one, Uptime-Kuma which I canā€™t seem to get the correct setup to inform me of updates. Hereā€™s what I have in my compose file:

      - 'wud.tag.include=^\d{6}-.*$$'
      - 'wud.tag.transform=^(\d{6})-.*$$ => $$1'
      - 'wud.link.template=https://github.com/louislam/uptime-kuma/releases/tag/$${major}$${minor}$${patch}'

My last attempt at fixing it was adding the transform which Iā€™ve not needed for any other containers. In any case it doesnā€™t work to resolve my issue.

Iā€™m not sure exactly what trips it, but it occasionally notifies me that it needs to be updated when it doesnā€™t. Right now the current released version and what Iā€™m running is ā€œ1.23.11ā€. But the latest version always says ā€œnightly-amd64ā€ which I donā€™t want, nor does it make sense that it matches my include tag. I previously was using an include tag that works for many of my other containers and no transform tag, but that didnā€™t work either. The include looked like this:

      - 'wud.tag.include=^\d+\.\d+\.\d+$$'

Anyone have any ideas why Iā€™m struggling with this issue?

I tested it by myself and with only the label wud.tag.include=^\d+\.\d+\.\d+$, itā€™s working.

I deployed intentionally the 1.23.10 version to see if wud would find the 1.23.11 and it did.

version: '3'
services:
  whatsupdocker:
    image: fmartinou/whats-up-docker
    container_name: wud
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 3000:3000

  uptime-kuma:
    container_name: update_kuma
    image: louislam/uptime-kuma:1.23.10
    labels:
      - 'wud.tag.include=^\d+\.\d+\.\d+$$'

1 Like

Thank you. Thatā€™s what I had originally and would have worked, except I was missing the ā€œlabelsā€ section and it was winding up in my ā€œenvironmentā€ instead! Working great now.

For inspiration: this is the way how I show the informations of WUD in a markdown-card:

image

{% set UKC = {"unknown": "RED", "minor": "ORANGE", "patch": "GREEN"} %}
<table>
{% for S in states.update 
  | selectattr('state', '==', 'on') 
  | selectattr('entity_id', 'match', 'update.wud_container_')
  | sort(attribute='attributes.display_name') 
%}

<tr>
<td>{{ S.attributes.display_name }}&ensp;</td>
<td>{{ S.attributes.watcher }}&ensp;</td>
<td><font color={{ UKC.get(S.attributes.update_kind_semver_diff) }}>
    <ha-icon icon="mdi:docker"></ha-icon></font>&ensp;</td>
<td>{{ S.attributes.installed_version }}&ensp;</td>
<td><a href="{{ S.attributes.release_url }}" target="_blank">
    {{ S.attributes.latest_version }}</a></td>
{% set AGE = (now()- S.attributes.image_created | as_datetime).days %}
<td align=right><font color=GRAY>&ensp;{{ AGE }}&nbsp;Tage</font></td>
</tr>
{% endfor %}
</table>
4 Likes

Hi,
I am testing wud on my system at the moment but I donā€™t understand the trigger:

WUD_TRIGGER_{{trigger_type}}}_{trigger_name}_ONCE

Does it mean that the trigger just runs once and after that, it will never run again? So if I am right, when I want to update some containers automatically, I have to set this trigger to ā€œnoā€?!
I did exactly this in my yaml file, but in the configuration section in the gui, it says once <empty>

This is my configuration of the yaml:

services:
whatsupdocker:
image: fmartinou/whats-up-docker
container_name: wud
ports:
- 3000:3000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/user/Docker/mealie/docker-compose.yml:/composefiles/mealie/docker-compose.yml
environment:
- WUD_TRIGGER_DOCKERCOMPOSE_MEALIE_THRESHOLD=PATCH
- WUD_TRIGGER_DOCKERCOMPOSE_MEALIE_FILE=/composefiles/mealie/docker-compose.yml
- WUD_TRIGGER_DOCKERCOMPOSE_MEALIE_ONCE=false

What did I wrong?

Is it possible to update containers with this directly from the UI?

I have this in the portainer stack I do NOT want updated by WUD.

    labels:
        - wud.watch=false

Good morning,
I donā€™t understand how to display my dockersā€™ information in Home Assistant, can you please guide me?