이것은 사소한 지적처럼 들릴 수 있지만, 여기에는 몇 가지 중요한 뉘앙스가 있다고 생각합니다.
제시하신 옵션들은 설정이 어떻게(HOW) 전달되는지와 어떤(WHAT) 설정이 전달되는지의 혼합입니다.
설정 전달 방식(HOW)에 관해서는 다음 두 가지가 적용됩니다:
- 현재 환경 변수가 사용되고 있는 방식
DISCOURSE_WHATEVER 환경 변수는 현재 Docker 빌드 과정에서 discourse.conf 항목을 생성하는 데 사용되며, 이 항목들은 Discourse 내부에서 GlobalSetting 또는 SiteSetting으로 사용할 수 있습니다. Discourse는 이러한 환경 변수를 환경 변수로 인식하지 않습니다.
- discourse.conf 항목의 제한 사항
GlobalSettings는 SiteSettings를 억제하고 오버라이드할 수 있는 좋은 장점이 있지만, 멀티사이트 환경에서는 멀티사이트의 모든 사이트에 적용된다는 제한 사항을 강요합니다.
이 두 가지가 결합되면 Discourse 내부에서는 SiteSetting이 가장 유연합니다. 이들은 실제 SiteSettings일 수 있으며, 선택적으로 discourse.conf에서 가져올 수 있고, 해당 항목은 DISCOURSE_ 환경 변수에서 가져올 수 있습니다. 제 생각에는 거기에 실질적인 선택지가 없습니다. SiteSetting은 가장 유연하고, 다른 것들의 기능적 초집합(superset)이므로 단점이 없습니다. 원한다면 대신 GlobalSettings를 사용할 수 있으며, 그것도 환경 변수를 사용하여 채울 수 있습니다.
즉, 유일한 실질적인 선택지는 자격 증명의 자동 발견을 사용할 것인지 여부입니다. 제 개인적인 인식에 따르면, 자동 발견은 항상 오류가 발생하기 쉬우므로 명시적인 무언가를 선호합니다.
즉, 실제 구체적인 자격 증명을 가리키는 SiteSetting을 가지는 것입니다.