将上传和备份迁移到 DigitalOcean 块存储

那么,您想将所有上传和备份迁移到 DigitalOcean 块存储吗?

不过,在您进行此操作之前,您可能更希望考虑 https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916。它的设置不复杂,并提供其他一些优势。

在 DigitalOcean 上设置 Discourse 实例

使用我们的官方指南在 DigitalOcean 上设置 Discourse 实例。

向您的云主机添加一个卷

块存储卷添加到您的云主机。记下卷的名称。在我的情况下,卷的名称是 volume-nyc1-05

确保卷已格式化并挂载到 /mnt/volume_nyc1_05

/var/discourse/shared 移动到卷

为获得最佳性能,我们将把 postgres_data 保留在主驱动器上,并将其余数据移动到新附加的卷上。

以 root 用户身份登录,从您的服务器运行以下命令:

mv /var/discourse/shared/standalone/postgres_data /var/postgres_data_discourse
mv /var/discourse/shared /mnt/volume_nyc1_05

请确保将 volume_nyc1_05 替换为您的卷的名称。

编辑 app.yml 以反映更改

在您首选的编辑器中打开 /var/discourse/containers/app.yml 文件,并找到以下代码块:

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

将上述代码块替换为:

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /mnt/volume_nyc1_05/shared/standalone
      guest: /shared
  - volume:
      host: /mnt/volume_nyc1_05/shared/standalone/log/var-log
      guest: /var/log
  - volume:
      host: /var/postgres_data_discourse
      guest: /shared/postgres_data

请确保将 volume_nyc1_05 替换为您的卷的名称。

保存 app.yml 文件并重建容器。

/var/discourse/launcher rebuild app

:tada: 大功告成!

就是这样,您所有的上传和备份现在都已迁移到 DigitalOcean 块存储。


鸣谢

本指南的灵感来源于 @sam此处的建议。

37 个赞