مشاكل الاستعادة

حسنًا، لقد قمت للتو بنسخ احتياطي وتحققت مما إذا كان يمكن العثور عليه خارج آلة 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 هذا خارج آلة (vagrant) التي شغلت فيها discourse.

لكن في الوقت الحالي، كما اقترحت، قمت بالخطوات التالية:

  • قمت بالاتصال بآلة 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، وقمت بـ git clone من الداخل في الدليل القياسي /var/discourse. الشيء “الغريب” الوحيد هو أنني أملك ملف discourse.yml داخل الحاوية، وليس app.yml.