復元に関する問題

さて、今すぐバックアップを作成し、Docker マシン外からそれが見つかるか確認しましたが、見つかりませんでした。

vagrant@ubuntu-xenial:~$ sudo docker inspect -f "{{.Mounts}}" discourse
[{bind  /var/discourse/shared/standalone /shared   true rprivate} {bind  /var/discourse/shared/standalone/log/var-log /var/log   true rprivate}]

その通りですが、今はそれを無視しました。ちなみに、その rsync は Discourse を実行していた (Vagrant) マシン外で行われました。

しかし、あなたの提案通り、以下の手順を試しました:

  • Vagrant マシンに SSH で接続し、その内部から:
    • sudo docker exec -w /var/www/discourse -i discourse discourse backup でバックアップを作成
    • ファイルパスに気づきました:
      Output file is in: /var/www/discourse/public/backups/default/discourse-2020-05-14-125606-v20200512064023.tar.gz
      
    • その特定のファイルを探すため Vagrant マシン全体を検索しましたが、何も見つかりませんでした
      find / -name discourse-2020-05-14-125606-v20200512064023.tar.gz 2>/dev/null
      
    • しかし、Docker マシン内に入ると、そこにあります
      root@ubuntu-xenial-discourse:/var/www/discourse/public/backups/default# ls
      discourse-2020-05-14-120436-v20200512064023.tar.gz  discourse-2020-05-14-121930-v20200512064023.tar.gz
      discourse-2020-05-14-121710-v20200512064023.tar.gz  discourse-2020-05-14-125606-v20200512064023.tar.gz
      

つまり、私の質問は: バックアップを作成した場合、Docker 外からそれを見ることができるべきでしょうか?

その間、私は Vagrant マシンを新たに作成し、標準の /var/discourse ディレクトリ内で git clone を行いました。唯一の「奇妙な点」は、コンテナ内に app.yml ではなく discourse.yml が存在することです。