Skip to content

Moving from Watchtower ​

Dozzle can do what Watchtower does: check your containers for newer images on a schedule and update them. Each update is watched, and the old container is put back if the new one fails to stay up. This page maps Watchtower's settings to Dozzle's.

Turn it on ​

Dozzle needs actions on and /data on a volume:

yaml
services:
  dozzle:
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dozzle-data:/data
    ports:
      - 8080:8080
    environment:
      DOZZLE_ENABLE_ACTIONS: true
      DOZZLE_AUTO_UPDATE: daily
      DOZZLE_AUTO_UPDATE_TIME: "04:00"
volumes:
  dozzle-data:

You can leave out the two DOZZLE_AUTO_UPDATE lines and set the schedule under Settings → Updates instead. Pick Which containers there too. Then stop Watchtower, so the two do not update the same containers.

Settings ​

WatchtowerDozzle
--schedule or --intervalDOZZLE_AUTO_UPDATE (daily, or weekly on Sunday) and DOZZLE_AUTO_UPDATE_TIME. At most once a day
Every container (the default)Which containers: Everything
--label-enable with com.centurylinklabs.watchtower.enable=trueWhich containers: Labelled containers (the default) with dev.dozzle.update: auto
com.centurylinklabs.watchtower.enable=falsedev.dozzle.update: off
--cleanupAlways on. The old untagged image is removed after an update, and one previous image is kept for rolling back
--monitor-onlyLeave the container unlabelled under Labelled containers: it is checked and shown as an update, and never updated on its own
--rolling-restartAlways: each host updates one container at a time
--notification-urlAlerts and webhooks on container events, or Dozzle Cloud, which watches each update and tells you when a new version starts failing
--run-onceUpdate in the Updates drawer
Private registry credentialsNot supported. Containers from a private registry are skipped

Labels ​

Watchtower's labels are not read. Replace com.centurylinklabs.watchtower.enable with dev.dozzle.update:

dev.dozzle.updateWhat happens
autoUpdated on the schedule, unless Which containers is Dozzle only
(no label)Updated on the schedule under Everything. Otherwise checked and shown as an update, which you apply
offNever checked, never updated

Older Dozzle labels are still accepted: dev.dozzle.auto-update=true reads as auto, and dev.dozzle.update-check=false as off.

What is different ​

  • The old container is kept until the new one has stayed up, and healthy if it has a healthcheck. If not, the old one is put back.
  • Unhealthy containers are skipped.
  • Stopped containers are never updated, even when they are labelled auto.
  • With Dozzle Cloud, a scheduled update that starts failing can be rolled back. The schedule then leaves that container alone until a newer image is published.
  • Images pinned to a digest and images built locally are skipped, since there is nothing newer to compare against.

Released under the MIT License. Open sourced and sponsored by Docker OSS.