Ghan
1
我正在尝试在虚拟机中设置一个测试版的 Discourse 实例,以便进行从其他软件的导入工作。我对 Docker、Discourse 和 Ruby 都是新手,因此还不熟悉后台的运行机制。到目前为止,我已经 fork 了 discourse_docker 仓库,并按照这里的说明使用了它(使用我自己的本地 Ubuntu 虚拟机,而不是云实例):discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
设置完成后,根据 netstat 显示,我的本地虚拟机似乎以某种方式配置了容器,使得端口 80 和 443 仅在 IPv6 地址上监听。由于我在本地不使用 IPv6,因此无法访问 Discourse 实例。我该如何修正这个问题?我查看了 app.yml 文件,但其中似乎没有绑定设置。我搜索了是否有其他人遇到类似问题,只找到了一条来自 2015 年的记录,其解决方案是在容器内部更改 DNS 配置。这听起来是个糟糕的主意(Bad Idea™),所以我希望找到一个更优雅的方法。
谢谢!
pfaffman
(Jay Pfaffman)
2
您可能不需要 fork 这个仓库。
这很可能是您的虚拟主机的问题。我之前从未遇到过这种情况。
Ghan
3
我 fork 了这个仓库,试图按照这份指南操作:
不过,我不认为这会导致任何问题。
我在 ESXi 上运行的是刚下载的 Ubuntu Server 全新安装版(来自 ubuntu.com)。这些都是非常标准的操作。
配置是在哪里决定如何绑定服务的?
pfaffman
(Jay Pfaffman)
4
默认情况下,它会绑定到所有 IP 地址。
你可以在映射端口的行中添加 IP 地址,但这很可能是虚拟机的问题。是 DigitalOcean 吗?
这里有在容器中运行导入的示例。它们可能比您链接的那个更好(但我没有查看,所以可能错了)。
Ghan
5
不,我有自己的 VMware 主机用于运行虚拟机。无论是直接通过 IPv4 还是通过 DNS 名称访问虚拟机,我都没有遇到任何问题。只是不知为何,Docker 服务(非默认服务如 SSH 服务器)仅绑定到 :::80 和 :::443,而不是 0.0.0.0。
是否有相关的日志文件可以提供一些详细信息?
这里有在容器中运行导入的示例。它们可能比您链接的那个更好(但我没有查看,所以我也可能错了)。
好吧,到目前为止我还没有进行到导入部分。
最终,我希望改进我们网站的这个导入脚本。到目前为止,我一直在尝试不同的入门指南,但我觉得目前还是先采用基本的普通安装方式比较合适。
pfaffman
(Jay Pfaffman)
6
问题出在 Docker 或你的虚拟机上。建议查阅虚拟机和 Docker 的指南,先从运行一个简单的 Hello World 容器开始。这不是 Discourse 的问题。