さて、今すぐバックアップを作成し、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 が存在することです。