修复在 Docker 更新过程中破坏的 Digital Ocean 上的 Discourse 安装

您希望完成什么?
我的 Discourse 安装已经顺利运行了 3 年。我手动更新到 Docker 后,一切都坏了。我只能在恢复模式下访问服务器。我无法启动 Docker。当我从硬盘驱动器(而不是恢复模式)启动服务器时,我无法通过 SSH 连接。

您希望何时完成?
让 Discourse 重新正常工作!

我有两个月前的快照,但希望不要丢失过去两个月的数据。我也有一个 Docker 损坏后立即的快照。

我几个小时前雇了一个开发人员,但他无法完成项目,因为对他来说已经太晚了,但我需要尽快修复。这是一个生产站点。

他提到:

所有标准检查都已完成,SSH 可以工作,流量没有被阻止,我们更新了 SSH 配置以使用密码身份验证。我们需要做的是调查在此损坏之前采取了哪些步骤并调查相关日志。

您能为这项任务提供多少美元预算?
我将按小时支付任务费用,按市场价支付。请告知您的费率。

2 个赞

我发了私信。正如我在那里所说,最快的方法可能是启动一个新的 Droplet。

3 个赞

非常感谢 @jericson 的帮助!

我们最终采取了以下措施:

  1. 获得旧站点的恢复访问权限
  2. 挂载一个网络驱动器(Digital Ocean Volume Block Storage)
  3. /var/discourse 文件打包成 zip(tar 包)
  4. 将这些文件导出到网络驱动器
  5. 关闭旧服务器并卸载网络驱动器
  6. 在新的服务器上构建一个新的 Discourse 组织
  7. 连接网络驱动器
  8. 解压文件
  9. 找到一个 7 天前的备份
  10. 恢复到那个时间点

我们曾尝试将 /var/discourse 文件夹整体迁移到新服务器,但遇到了 Redis 问题(不确定那是否是根本问题,但那是被标记出来的问题)。

再次感谢你的帮助,Jon。谢谢!

5 个赞

很高兴您能修复安装问题。干得好 @jericson :clap: :slight_smile: :discourse:

4 个赞

只是好奇。最近有几条关于 Docker 和 DigitalOcean 升级失败的消息。这仅仅是巧合,还是存在一个共同的原因,会导致 DigitalOcean 上的其他 Discourse 管理员在升级时遇到问题?我之所以这样问,是因为我就是其中之一。:sweat_smile:

@waffleslop @jericson 干得好,感谢您发布有关如何修复它的信息——对于像我这样的自托管者来说,总是有这样的资源以备不时之需!

@icaria36 我现在大部分实例都在 Digital Ocean 上,并且最近升级了操作系统和 Discourse 代码库,一切都很顺利。(希望我说出来不会带来厄运!)

2 个赞

我可以确认,直到昨天,所有的升级都很顺利。我通过 GUI 更新了 Docker,并且成功了。然后我准备更新接下来的 3 个项目,并按下了其中一个(我不记得是哪个)按钮。什么也没发生。我等了几秒钟,然后按下了另一个……再按下了另一个。也许我操作太快了,把事情搞砸了?我最终登录到控制台,发现一条消息建议重启,所以我重启了机器。之后它再也没有完全在线。

有可能我在升级/更新过程中重启了,现在回想起来,这样做感觉很蠢!

3 个赞

我们没有花时间去研究问题的原因,因为我想尽快让 @waffleslop 恢复运行。我已经成功升级了我的 Discourse(托管在 DigitalOcean 上)服务器。不过,我使用的是命令行而不是图形界面,因为我有一个非标准安装

我可以推荐几点来尽量减少宕机时间过长的风险:

  1. 在做任何事情之前先备份! 我想知道界面上是否应该有一个警告,强烈建议在更新之前进行备份。最近的备份让我感到安心,因为在最坏的情况下,我们至少可以启动一个新的 Droplet 并恢复数据。
  2. 确保你能访问你的备份! @waffleslop 和我花了相当多的时间来弄清楚如何将 /var/discourse 的副本传输到新的 Droplet。原始 Droplet 出现了一些非常奇怪的问题,我们无法直接将文件 scp 到新的 Droplet。对于我自己的服务器,我将备份放在 S3 上,并且每晚将它们复制到我的本地机器。这是否过多?可能吧。但当事情因为某种原因停止工作时,它确实给了我很多选择。
  3. 不时测试你的备份。 当你的生产服务器宕机时,你想有信心知道自己该怎么做。理想情况下,你应该在更新之前测试备份,这样如果生产环境出现任何问题,你就有了一个可以回退的地方。但通常情况下,只要你经常尝试备份以保持流程的熟练度就足够了。
  4. 两人智慧胜一人。 也许这是我自私的想法,但如果你能与有经验的人分享屏幕进行通话,那么度过紧急情况会容易得多。理想情况下,你需要一个知道如何使用命令行的人

只要你进行了备份,升级应该 pretty safe。

5 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.