Konfigurieren von Watchtower

Watchtower wird üblicherweise in die Gesamtkonfiguration von SOLECTRUS integriert, d.h. die bestehende Datei compose.yaml ist zu erweitern.

compose.yaml

services:
  # ....
  watchtower:
    image: containrrr/watchtower
    environment:
      - TZ
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --scope solectrus --cleanup
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
        max-file: '3'
    labels:
      - com.centurylinklabs.watchtower.scope=solectrus

  dashboard:
    # ...
    labels:
      - com.centurylinklabs.watchtower.scope=solectrus

  senec-collector:
    # ...
    labels:
      - com.centurylinklabs.watchtower.scope=solectrus
  # ...

Wesentlich sind hier zwei Dinge:

  • Watchtower wird als eigener Service definiert. Dieser Service hat Zugriff auf den Docker-Daemon, um Container zu aktualisieren. Außerdem wird (über den Parameter scope) festgelegt, dass nicht sämtliche Container aktualisiert werden sollen, sondern nur die mit entsprechender Kennzeichnung. Falls SOLECTRUS also auf einem Docker-Host läuft, auf dem auch ganz andere Container laufen, werden diese nicht angetastet.
  • Jeder Service, der von Watchtower aktualisiert werden soll, erhält das Label com.centurylinklabs.watchtower.scope=solectrus. Dadurch wird Watchtower angewiesen, den zugehörigen Container aktuell zu halten.

Watchtower lässt sich ansonsten vielfältig konfigurieren. Die hier angegebene Standardkonfiguration ist für SOLECTRUS aber vollkommen ausreichen.

Watchtower läuft standardmäßig einmal täglich, die erste Prüfung erfolgt 24 Stunden nach dem Start. Wenn Watchtower gerade erst eingerichtet wurde, musst also für die erste Update-Prüfung einen Tag gewartet werden.