Das mag kleinlich klingen, aber ich denke, hier gibt es einige wichtige Nuancen.
Die von Ihnen angebotenen Optionen sind eine Mischung aus WIE Einstellungen übergeben werden und WAS für Einstellungen übergeben werden.
In Bezug auf WIE Einstellungen übergeben werden, gelten zwei Dinge:
-
die Art und Weise, wie Umgebungsvariablen derzeit verwendet werden
DieDISCOURSE_WHATEVER-Umgebungsvariablen werden derzeit während des Docker-Build-Prozesses verwendet, um Einträge indiscourse.confzu erstellen, die innerhalb von Discourse alsGlobalSettingoderSiteSettingverfügbar sind. Discourse nimmt diese Umgebungsvariablen nicht als solche wahr. -
die Einschränkungen von discourse.conf-Einträgen
Obwohl GlobalSettings den netten Vorteil haben, SiteSettings unterdrücken und überschreiben zu können, haben sie auch die Einschränkung, dass sie in Multi-Site-Umgebungen für alle Sites im Multi-Site gelten.
Diese beiden kombiniert bedeuten, dass SiteSetting innerhalb von Discourse am flexibelsten ist. Sie können tatsächliche SiteSettings sein, sie können aus discourse.conf stammen und diese Einträge können aus DISCOURSE_-Umgebungsvariablen stammen. Meiner Meinung nach gibt es dort keine wirkliche Wahl, SiteSetting ist am flexibelsten und hat keine Nachteile, da sie eine funktionale Obermenge darstellen. Sie können stattdessen GlobalSettings verwenden, und diese können mithilfe von Umgebungsvariablen gefüllt werden.
Das impliziert, dass die einzige tatsächliche Wahl darin besteht, ob die automatische Erkennung von Anmeldeinformationen verwendet werden soll oder nicht. Meiner persönlichen Wahrnehmung nach ist die automatische Erkennung immer sehr fehleranfällig, daher würde ich etwas Explizites bevorzugen.
D.h. eine SiteSetting haben, die irgendwie auf tatsächliche, konkrete Anmeldeinformationen verweist.