将 discourse 实例迁移到新服务器

提问前,你搜索了吗?点击右上角的 :magnifying_glass_tilted_left: 进行搜索

您好,

首先感谢您提供的任何支持。话虽如此,我想讨论我的问题以及我为自托管 Discourse 实例设定的目标。

问题

我目前使用 Hetzner 作为托管 Discourse 实例的服务器。我已附加了 UploadsBackups 的卷。当前的 Docker 容器和镜像,以及 app.yml 等,都托管在服务器本身 /var/discourse 目录下。

我拥有这个服务器已有 3-4 年了,在这段时间里,我一直遇到服务器本身(非卷)空间不足的问题。每当我想重建应用程序或重新启动应用程序时,我都会遇到空间问题,因为它会将镜像和 Docker 容器安装到本地服务器而不是卷上。我需要不断删除 Docker 和任何镜像/容器,然后进行全新安装,以便能够重建。我还认为 SQL 数据连接到了本地服务器而不是卷。

目标

我不知道接下来什么最适合我。是将特定文件夹或文件移动到新的卷以用于 Postgres 数据库和 Docker 镜像,如果是这样,我很想获得如何操作的支持?还是从一个全新的服务器开始,创建服务器的备份,并在具有正确配置位置的所有卷的新服务器上进行恢复?


鉴于以上所有情况,我很想获得关于配置 app.yml 的支持,以便为所有占用空间的内容正确设置卷,这样我就可以在备份、上传、数据库或 Docker 镜像等需要时单独进行扩展。

我今天晚些时候可以提供我的 app.yml 文件,因为我现在正在工作,并希望提前做好准备。

我在 AWS 上托管 Discourse,并且一直以来都非常成功地将 /var/discourse 保留在独立的、可挂载的 EBS 卷上,并在需要迁移时将该卷挂载到不同的 EC2 实例上。我甚至完全改变了架构,从 x64 迁移到 ARM(我将 EC2 实例从 t3a.large 切换到了 r7g.large),在重新挂载 /var/discourse 卷后,即使架构发生了变化,只需运行 launcher rebuild app 即可恢复在线状态。

总而言之,如果你的 /var/discourse 存储在可挂载的卷中,那么你的论坛的整个状态就处于一种可以轻松迁移的状态。只要你能设置一个主机并在其上安装 Docker,你就可以挂载 /var/discourse,运行 launcher rebuild app,然后就可以运行了。(假设 app.yml 中指定的诸如主机名和其他内容在不同主机之间保持不变。)

您能否提供一个示例 app.yml 来进行此设置?另外,是否像将 /var/discourse 内容移动到另一个卷一样简单,还是我需要将存储库克隆到新卷中?


数据库文件又如何?

这是我当前工作 app.yml 的一个已清理副本

并且数据库的所有内容都存储在 /var/discourse 中吗?那么,如果我将 /var/discourse 的所有内容移动到一个可挂载的卷中,它应该会继续使用所有现有数据吗?

我使用的是标准的单容器自托管安装,所以一切都已设置好,但默认值是已设置的!

问题,尽管我将 /discourse 文件夹移到了一个可挂载的卷上,但我仍然在与 Docker 搏斗。容器和镜像仍在本地驱动器上运行,而不是在卷上。有什么办法可以解决这个问题吗?

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