在苦苦挣扎了几个小时后,我需要寻求帮助。
调试日志:
https://privatebin.net/?b56249efe41b5599#8nt7yMQU2Hft4HysXSoZkxXQTYdR9MFv91qC9sbBgen
在苦苦挣扎了几个小时后,我需要寻求帮助。
调试日志:
https://privatebin.net/?b56249efe41b5599#8nt7yMQU2Hft4HysXSoZkxXQTYdR9MFv91qC9sbBgen
您的 Droplet(或 docker 容器)与 GitHub 的连接存在问题
fatal: 无法访问 ‘GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.’:无法解析主机:github.com
您能否验证一下 GitHub 是否可访问?
啊,是不是意味着我在短时间内尝试重建了太多次,导致我的服务器 IP 被暂时禁止了?
其他的错误都不重要吗?
我刚才又试了一次,还是被阻止了,所以还有什么别的办法可以尝试,还是我应该等 24 小时后再试一次?
您可以尝试 ping/curl github.com,看看是否收到任何响应。这可能是防火墙或连接性问题,而不是速率限制。
“无法解析主机”表明存在 DNS 问题,即您的服务器无法找到 github.com 的 IP 地址。
==================== REBUILD LOG ====================
检测到 x86_64 架构。
确保启动器是最新版本
正在获取 origin
启动器是最新版本
这表明您的主机能够解析并连接到 github.com,除非您从其他地方克隆了 discourse_docker 存储库。您可以使用以下命令确认这一点,以列出存储库的远程:
cd /var/discourse
git remote -v
输出应为:
origin https://github.com/discourse/discourse_docker.git (fetch)
origin https://github.com/discourse/discourse_docker.git (push)
如果情况确实如此,那么随后无法解析 github.com 的错误将意味着 Docker 容器尽管主机能够解析,但它自己无法解析,这表明 Docker 连接存在问题。
git remote -v 的输出确实符合预期。我应该如何排查 Docker 的问题,或者直接重新安装它?只要不丢失任何数据,我很乐意这样做。Discourse 究竟将数据库和上传的文件存储在哪里(无论接下来发生什么,我都想手动备份它们)?
/var/discourse/shared/standalone 被映射到容器中的一个卷,所有持久化数据都存储在那里。
docker network ls 将列出 docker 网络,我看到的是默认的 bridge 网络和另外两个网络。容器使用默认的 bridge 网络,除非明确告知使用其他网络。
我找到了 一些信息 关于默认 bridge 网络不再提供与外部世界的连接。我猜测 Ubuntu 22.04 可能已升级到适用此规则的 Docker 版本,这意味着 Discourse 容器需要设置为使用用户定义的 bridge。
我认为 你可以编辑 /var/discourse/containers/app.yml 并在底部添加此内容,然后重建:(但我尚未测试过)
networks:
default:
driver: bridge
/var/discourse/shared/standalone/backups/default 似乎有所有重要部分(数据库和上传文件)的压缩备份。
感谢您的建议,但没有成功。
我应该只尝试重新安装 Docker,还是如果我这样做,我不如彻底清除一切并完全全新安装 Discourse(我是通过 Discourse | DigitalOcean Marketplace 1-Click App 安装的)?
我猜在 Discourse 管理后台导入备份文件应该很简单?
standard install 是唯一官方支持的安装方式,但您可以在下方找到有关恢复备份的信息。这与 DO 1-Click 安装过程相同。
看起来 1-Click 应用明确使用了 Ubuntu 20.04,因此在更改之前,最好继续使用 20.04。它将在未来三年内继续获得错误修复/安全更新,因此没有必要急于迁移到 22.04。
不过,您不妨先尝试重新安装 Docker。也许问题出现在升级过程中,并且重新安装后 Docker 网络被移除然后重新添加可能会解决它。
我最终只是用一个干净的 Ubuntu 22.04 副本重建了 Droplet,手动(以标准方式)重新安装了 Discourse,然后导入了备份。这很快很容易,我希望我一开始就这么做了。
感谢所有的帮助!
很高兴知道这不是 22.04 安装的普遍问题。
我这个周末从 20.04 升级到 22.04 执行了几次 do-release-upgrades,我可以确认它们现在都可以正常工作,而无需重新安装 Docker。看来 Ubuntu 仓库在过去几周内一定修复了一些问题。
现在应该可以顺利地进行此类升级了。