Config upgrade mit docker

Hi

neue config Files werden mit apt update/upgrade entweder separat mit neuer Extension gespeichert oder Überschrieben. Möchte ich herausfinden was sich an den config Files geändert hat mache ich einfach einen ‘diff’.

Benutze ich Docker hab ich die Möglichkeit nicht. Meine alten configs bleiben erhalten. Um Unterschiede herauszufinden kann ich mir diese aus git clonen oder eine Docker dummy Installation in ein leeres Verzeichnis vornehmen und damit vergleichen.

Existiert innerhalb der homegear Verzeichnisse ein Ordner mit default config files, die man zum vergleich nehmen kann?

Das ist glaube ne Sache für @sathya

Zum Upgrade

  1. stoppe ich den docker container,
  2. schiebe mein etc und lib Verzeichnis weg
  3. pulle das neue image
  4. starte einen container mit dem neuen image ohne configs (libs/etc)
  5. sobald alles hochgefahren ist stoppe ich den container wieder
  6. dann mach ich ein diff -r etc.old/ etc/ und passe ggf. die Dateien an bzw. kopiere die alten wieder rüber (selbiges für lib, vor allem wieder die sqlites reinkopieren).
  7. container wieder starten

ach ja, und die logs lösch ich bei der Gelegenheit :slight_smile:

HTH

2 Likes

Hi

hab mir deine Prozedur mal angeschaut und werde es ähnlich machen.

Allerdings nutze ich ein docker-compose file, pull das Image in einen anderen root Ordner.
Ich habe Änderungen in patch-files gespeichert (mit diff erzeugt) und kann damit die neuen config-Files anpassen.

Problematisch ist es nur mit node-blue, ich kenne keinen cli weg die Daten komplett zu migrieren.

danke

Hallo,

Wie meinst du das? Das wichtigste hier ist die flows.json. Wenn nach Wiederherstellung Knoten fehlen, ist dieses im Frontend direkt ersichtlich und diese lassen sich im Frontend dann nachinstallieren.

Habt ihr Vorschläge, wie wir das Ganze besser machen können? Da Docker viel genutzt wird, lohnt es sich sicherlich, hier etwas Zeit zu investieren.

Viele Grüße

Sathya

1 Like

Lt. Dockerfile liegen die ursprünglichen Dateien im Container unter /etc/homegear.config.

Gibt es einen vergleichbaren Ordner auch für /var/lib/homegear?

/var/lib/homegear.data (lt. Zeile 16 des referenzierten Dockerfile)

Mein Problem ist, wenn die Config Dateien in /etc/homegear angepasst werden (neue Parameter, neue Files, …) wie kann ich das bei einem Docker setup mitbekommen. Ich müsste nach dem einspielen des neuen Docker Images die Default Dateien mit den von mir genutzten vergleichen und gegebenenfalls neue Files kopieren.

Das gleiche Problem ist bei /var/lib/homegear. Hier sind die flow und .db files die wichtigsten, aber es existieren noch Files für die Website und admin-ui … innerhalb des Ordners. nach einem Update kann es durchaus passieren, das Fixes in den php Scripten nicht verfügbar sind. wenn ich die Ordner nich von Hand synchronisiere.

Bitte korrigiert mich wenn ich das falsch sehe.

das die original Daten in homegear.config und homegear.data vorhanden sind, mach das Vergleichen nach einem update schon mal einfacher.

Jetzt bräuchte man nur noch ein commandline, das die files synced. (rsync, diff in Kombination mit find, …)

Bei einer native installation wird das vom packetmanager erledigt und im falle von Änderungen kann ich entscheiden welches file ich aktiviert haben möchte.

Du kannst mit docker exec -ti <container name> /bin/bash in den laufenden Container rein, um die Inhalte von /etc/homegear und /etc/homegear.config zu vergleichen. Da ist ein Debian drunter, nach einem apt update kannst Du auch Tools wie vimdiff installieren.

Oder mit docker cp Dateien aus dem Container kopieren und lokal vergleichen.

In /var/lib sollte man m.E. nicht rumpfuschen.

Wir werden ab jetzt auch zusehen, dass es eine vernünftige automatische Migration gibt.

1 Like

hört sich gut an - danke
sag bescheid wenn man es mal ausprobieren kann …