docker-compose.yml reicht zwei nötige Umgebungsvariablen nicht durch #43
Notifications
Total Time Spent: 2 minutes
florian.wilde
2 minutes
No due date set.
Dependencies
No dependencies set.
Reference: florian.wilde/betreuungs-cockpit#43
Reference in New Issue
Block a user
Problem
Der Dienst
appin derdocker-compose.ymlzählt seine Umgebungsvariablen einzeln auf und hat keinenv_file:. Zwei mit v1.11.0 eingeführte Werte fehlen dort:ERSTEINRICHTUNG_GEHEIMNISVERTRAUE_PROXYWer sie laut
.env.exampleundINSTALLATION.mdin die.enveinträgt, bringt sie damit nicht in den Container. Die Anwendung sieht sie nie.Folgen
VERTRAUE_PROXYfehlt still. Die Anmeldesperre zählt dann nur nach E-Mail-Adresse statt zusätzlich nach Anschluss. Es gibt eine Logzeile beim ersten Mal, aber nichts, was im Betrieb auffällt.ERSTEINRICHTUNG_GEHEIMNISfehlt lauter. Bei einer Neuinstallation ließe sich der erste Zugang nicht anlegen, und die Meldung verweist auf eine.env, in der der Wert korrekt steht — man sucht an der falschen Stelle.Die Dokumentation aus v1.11.0 ist an dieser Stelle also schlicht falsch.
Umsetzung
Beide Variablen in den
environment:-Block des Dienstesappaufnehmen, mit denselben Vorgaben wie die übrigen:Bewusst ohne Vorgabewert
truebeiVERTRAUE_PROXY: Die Voreinstellung soll die strengere bleiben, und wer einen Proxy davorstellt, sagt es ausdrücklich.Bei der Gelegenheit prüfen, ob weitere in
.env.exampledokumentierte Werte im Compose-Dienst fehlen — derselbe Fehler kann sich anderswo wiederholen.Akzeptanzkriterien
docker compose configzeigt beide Variablen beim Dienstapp..env.exampledokumentierte Variable, die die Anwendung liest, auch durchgereicht wird — sonst wiederholt sich das beim nächsten neuen Wert.INSTALLATION.mderwähnt, dass diedocker-compose.ymldie Werte einzeln durchreicht.🚀 Umgesetzt und nach
mainübernommen.Vorgehen
env.tsaus, was gibt die Compose-Datei mit? Dabei kam ein dritter fehlender Wert dazu —S3_SSEaus #42, gerade erst eingeführt und schon in derselben Falle.VERTRAUE_PROXYbewusst ohne Vorgabetrue: Die strengere Einstellung bleibt die Voreinstellung.tests/umgebung-durchreichen.test.tsgebaut — der eigentliche Ertrag.INSTALLATION.md, Schritt 3: Die.envallein genügt nicht.Der Test vergleicht, statt aufzuzählen. Er liest links, was
env.tsausliest (auch überpflicht(),zahl(),schalter(),schluessel32()), rechts, was die Compose-Datei mitgibt, und meldet die Differenz. Eine feste Liste hätte dasselbe Problem gehabt wie die Compose-Datei: Sie veraltet, sobald jemand einen Wert hinzufügt.Dazu ein Test, der sicherstellt, dass die Erkennung überhaupt etwas findet — sonst stünde die Prüfung grün da und prüfte nichts. Das ist mir in dieser Sitzung schon zweimal passiert.
Geprüft: 736 Unit-Tests ·
tscsauber · Lint sauber · drei Mutationen, jede wird rot.Für das Livesystem: Nach dem Ausrollen kann der
app:-Block aus deinerdocker-compose.override.ymlweg — die Werte kommen jetzt aus der regulären Datei. Derminio:-Block entfällt mit #42.Pull Request: #50 (gemergt)