等等。你克隆了 Discourse 两次吗?你应该只克隆一次 Discourse,然后在 containers 目录中有多个 yml 文件。
也许可以看看 https://meta.discourse.org/t/use-nginx-proxy-manager-to-manage-multiple-sites-with-discourse/206344,不过 https://hub.docker.com/r/jwilder/nginx-proxy 是我用过的。你只需要在 YML 文件中添加一些 ENV 变量就可以让它连接起来,但仍然有很多东西需要理解才能让它正常工作。
每个站点都有自己的宿主机名。这才是这一切的意义所在,对吧?
我让反向代理连接到容器的 80 端口。其他人更喜欢使用套接字。你不应该暴露任何端口。
不。这些文件都不能共享。
每个站点都需要一个 postgres 数据库(如果你知道如何操作,可以放在同一个 postgres 服务器上)。
每个站点都需要自己的 redis。它们不能共享 redis,这是多站点设置的一个优势。
如果你想运行两个 postgres,只需更改宿主机名、smtp 和卷路径,并删除/注释掉 ssl 和 letsencrypt 模板。你甚至可以使用 discourse-setup,如果你在运行 ./discourse-setup 之前将 app.yml 重命名为,例如,hostname.yml。