Die .env bei jedem Start lesen, statt sie in den Container einzufrieren #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/config-file-at-start"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Was ändert dieser PR?
Die
.envwird jetzt vom Programm selbst gelesen, bei jedem Start, aus demMount unter
/etc/hetzner-ddns/.env. Eine Konfigurationsänderung braucht damitnur noch
docker compose restart.Vorher gab Compose die Datei über
env_file:beim Erzeugen des Containersan die Engine weiter. Die Werte frieren dort ein: Wer die
.envbearbeitet undneu startet, bekommt schweigend die alte Konfiguration — kein Fehler, keine
Warnung, nur ein Prozess, der nicht das tut, was in der Datei steht. Genau so
ist ein Apex-Eintrag über Tage unbemerkt nicht aktualisiert worden, obwohl er
in der
.envstand.Im Einzelnen:
docker-compose.ymlmountet die.envstatt sie überenv_file:einzubinden. Der Pfad im Container steht fest und ist nicht konfigurierbar —
dieselbe Konvention wie beim Token unter
/run/secrets/hetzner_api_token.das beim Start als Warnung protokolliert und nennt die betroffenen
Einstellungen: das ist der Fall, in dem eine Änderung wirkungslos aussieht.
config_from, woher die Konfiguration stammt;token_fromunterscheidet jetzt.envund Umgebung.gesetzten Schlüssel ab, statt die spätere Kopie still gewinnen zu lassen.
Verzeichnis an — dieser Fall benennt sich jetzt selbst.
docker run -e,Kubernetes), unverändert.
Checkliste
make lint testläuft durchmake check-domainsist grün — keine echten Domains im Diff, nurexample.com/example.org/example.net.envund keine Zugangsdaten im Diff.env.examplenachgezogen, falls sich Konfiguration ändertCHANGELOG.mdergänzt, falls die Änderung nach außen sichtbar istGetestet mit
make lint,go test -race ./...hetzner-ddns checkgegen eine Beispiel-.env: einmal nur aus der Datei(
config_from=.env, vier Targets), einmal mit gesetzter Umgebung (Warnungmit
settings="DDNS_RECORDS, DDNS_TTL", Werte der Umgebung wirksam), einmalmit doppeltem Schlüssel und kaputter Zeile (beide Fehler mit Zeilennummer).