それでは、すべてのアップロードとバックアップをDigitalOcean Block Storageに移動したいと考えているのですね?
ただし、これを行う前に、代わりにhttps://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916を検討する価値があります。設定はそれほど複雑ではなく、いくつかの他の利点も提供します。
DigitalOcean上にDiscourseインスタンスを設定する
公式ガイドofficial guideを使用して、DigitalOcean上にDiscourseインスタンスを設定します。
ドロッパーにボリュームを追加する
ドロッパーにブロックストレージボリュームを追加します。ボリュームの名前をメモしてください。私の場合は、ボリューム名はvolume-nyc1-05でした。
ボリュームがフォーマットされ、/mnt/volume_nyc1_05にマウントされていることを確認してください。
/var/discourse/sharedをボリュームに移動する
最適なパフォーマンスのために、postgres_dataはメインドライブに残し、残りのデータを新しくアタッチされたボリュームに移動します。
ルートとしてログインし、サーバーから次のコマンドを実行します。
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
完成です!
これで、すべてのアップロードとバックアップがDigitalOcean Block Storageに移動されました。
クレジット
このガイドは、@samの提案hereに触発されています。