DISCOURSE_HOSTNAME 环境变量的目的是什么?

你好,

我一直在尝试安装 Discourse。我注意到默认情况下,Docker 容器是通过 DISCOURSE_HOSTNAME 环境变量启动的。我尝试在不设置此环境变量的情况下启动容器,结果也运行正常。

我试图在代码仓库中查找该环境变量的相关信息,但搜索结果并没有太大帮助。(Repository search results · GitHub

请问这个环境变量的作用是什么?

同样,我也尝试从 docker 的 run 命令中移除 --mac-address 设置——应用像以前一样正常工作。为什么需要 --mac-address

我相当确定这会让 hostname 出现在 config/discourse.conf 文件中。我建议您始终设置它。

--mac-address 对我来说有点神秘。我认为这与他们的内部托管有关。我非常确定可以安全地省略该参数。

容器上使用一致的 MAC 地址可以为我们提供 一致的容器 IPv6 地址,这在部署期间替换容器时非常有用。

我不认为它用于其他任何用途。

如果你不需要它,可以跳过该参数。

哇哦!谜团解开了!还能看到马特·帕尔默!如果我有100个赞,我一定用在这里。

@pfaffman 您能多讲讲 config/discourse.conf 文件吗?它的作用是什么?我在网上看到过一些关于它的引用,但它看起来和 containers/app.yml 有些类似?

如果我不提供 DISCOURSE_HOSTNAME,实际上会发生什么?

另外我注意到一点——默认情况下,Discourse 也会使用 DOCKER_HOST_IP 环境变量。我把它移除了,Discourse 依然运行正常。我猜这个变量可能是在升级过程中使用的。是这样吗?如果我不打算通过 Web UI 升级 Discourse,我想我可能不需要它……

既然你专门问了我……这么说吧,Rails 就是从这里获取配置的。这不算什么好答案,但这是我目前能给出的最靠谱的自由发挥。不过这里有很多非常棒的免费解答,说不定你能得到更好的回答。:wink:

我不清楚,但也没太大必要去验证。要么它能正常运行,要么某天会突然失败,到时候你既不知道原因,其他人也帮不上忙。

而且根据我的经验,这种情况往往会在你圣诞假期期间发生,导致你最重要的站点之一瘫痪长达 18 个小时,直到你最终放弃并从头重新配置站点为止。