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