YML-Validierung vor dem Neubau?

Dies ist auf einer selbst gehosteten Discourse-Installation auf einem privaten VPS mit einer typischen Docker-Installation.\n\nIch habe es wieder getan:\nIch habe zwei Stunden auf ein „makelloses“ Update-Rebuild auf v3.4.0.beta2-dev gewartet.\nDann habe ich ein paar Zeilen zu app.yml hinzugefügt und weitere zwei Stunden auf einen weiteren Rebuild gewartet.\n*(Warum die Operationen trennen? Weil eine doppelte Belastung nie gut ist, wenn Potenzial für Fehler besteht.)*\nDann habe ich Laufzeitfehler im Log gefunden, weil ich Leerzeichen in app.yml (für MaxMind-Konto und -Schlüssel) vergessen hatte.\nAlso muss ich heute Abend noch einen Rebuild durchführen.\n\nDas sind über sechs Stunden virtuelle Ausfallzeit, verglichen mit einer WordPress- oder anderen CMS-Website, die im exakt gleichen Szenario nur wenige Minuten dauern würde. Das schreit nach „schlechter UX“ und damit nach „Anti-Marketing“ – es ist einfach nicht gut für die Plattform.\n\nDer einzige Grund, warum ich einen zweiten Rebuild durchführen musste, war, dass ich diese verfluchten zwei Zeilen hinzugefügt habe. Ich wünschte wirklich, ein vollständiger Rebuild wäre nicht notwendig, nur wegen dieser kleinen Änderung in der Konfigurationsdatei.\n\n1) Gab es Gespräche darüber, eine Validierung der yml-Datei vor einem Rebuild durchzuführen? Diese einfache Funktion hätte einen zeitaufwändigen Vorgang und nachfolgende Probleme eliminiert.\n\n2) Gab es Gespräche über einen Präprozessor, der feststellt, ob nach bestimmten Änderungen ein vollständiger Rebuild erforderlich ist?\n\n3) Ich bin überrascht, dass ein YAML-Fehler nicht in den Logs gemeldet wurde. Gibt es einen Grund, warum der Laufzeit-Hauptordner .yml und vielleicht andere nicht auf syntaktische Fehler überprüft werden? … Oder führen erfahrenere Administratoren ihr eigenes Linting durch, bevor sie einen Rebuild machen? :thinking:\n\nIch hoste in Docker, weil ich glaube, dass es die „einfachste“ Plattform ist, wenn/falls ich dieses System an jemand anderen zur Wartung weitergebe. Wenn das nicht stimmt und ich mich nicht nur für „nicht am einfachsten“, sondern auch für „am langsamsten“ entschieden habe, sollte ich vielleicht eine andere Installationsoption in Betracht ziehen.\n\nDanke!

Ein Zwei-Container-Setup kann den neuen Container erstellen, während der alte weiterläuft, sodass es nur etwa eine Minute Ausfallzeit gibt, während der neue Container hochfährt.

Das ist eine sehr gute Wiederherstellungszeit. Ich nehme an, Sie verwenden einen Pi oder etwas anderes, das sehr langsam ist?

Normalerweise erhalten Sie bei einem YML-Konfigurationsproblem sofort eine Benachrichtigung.

Sie können die Dateigröße mit diesem Code überprüfen und dann analysieren, ob es sich um ein Speicherplatzproblem handelt

/var/discourse# du -sh /* | sort -h

Außer bei diesen beiden Leerzeichen mit MaxMind. Es funktioniert, aber die Geo-Funktionen funktionieren nicht. Es ist also kein YML-Syntaxfehler an sich, aber es ist trotzdem ein Fehler :man_shrugging:

1 „Gefällt mir“