OH 3.4.5 auf Docker Container

Ab sofort läuft OpenHAB in einem Docker Container, ein Erfahrungsbericht.

Wie immer stellt sich bei einer Umstellung die Frage: Warum soll ich das machen, was ist der Nutzen, was ist der Aufwand?
Mein Grund für die Umstellung war, dass beim apt-get upgrade das OH von 3.x auf 4.x upgegraded wurde und dann nichts mehr funktioniert hat und es dann lang gebraucht hat, bis alles wieder gelaufen ist. Beim Upgrade wird ja im /etc/apt/sources.list.d Verzeichnis nachgeschaut, was aktuallisiert werden soll und dort gibt es die Datei openhab.list in der steht, von wo die Updates kommen. Eigentlich dachte ich, dass ich das upgrade auf die version 4 ausgeschaltet hatte, aber war anscheinend nicht so.

Damit war für mich klar. Jetzt portiere ich alles in einen Docker Container. Da ich das managen der container Umgebung über Portainer mache, wurde kurzerhand dort ein neuer stack angelegt und folgendes docker-compose file erzeugt.

version: '3.8'

services:
  openhab3:
    image: openhab/openhab:3.4.5
    restart: always
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "openhab3_conf:/openhab/conf"
      - "openhab3_addons:/openhab/addons"
      - "openhab3_userdata:/openhab/userdata"
    environment:
      CRYPTO_POLICY: "unlimited"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      OPENHAB_USER: "openhab"
      OPENHAB_GROUP: "openhab"
      OPENHAB_HTTP_PORT: "8080"
      OPENHAB_HTTPS_PORT: "8443"
      # If you need more memory
      #EXTRA_JAVA_OPTS: "-Xms1024m -Xmx2048m -Duser.timezone=${TZ}"
      USER_ID: 9001
      GROUP_ID: 9001
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    network_mode: host
    
volumes:
    openhab3_conf:
      external: true
    openhab3_addons:
      external: true
    openhab3_userdata:
      external: true
        

Ich lege alle Volumes vorher über den docker Befehl docker volume create xxx an. Das hat für mich den Vorteil, dass alle Volumes am Host System unter /var/lib/docker/volumes zu finden sind. D.h. ich brauch nur von dort alle Unterverzeichnisse sichern. Kopiere über WinSCP die Dateien vom Debian Server auf eine Windows Maschine. Damit das klappt, muss man auf den Verzeichnissen zuvor noch die richtigen Permissions setzten.

Nach dem Kopieren der things, items, etc… files auf das openhab3_conf/_data volume und das Kreieren eines neuen Workspaces im Visual Studio Code und einem neuen deploy des containers, ist openhab doch tatsächlich wieder gelaufen.

Was hat sich geändert?

openhab läuft nicht mehr als Dienst im Container, d.h. die Kontrolle über systemctl start|stop|status, etc. funktioniert nicht mehr. Will/muss man den OH Dienst neu starten, muss man den ganzen Container neu starten.

CategoriesopenHAB

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Begin typing your search above and press return to search. Press Esc to cancel.