ملخص: لقد نقرت على زر التحديث في لوحة تحكم Discourse الخاصة بي، وفشل التحديث. قررت إعادة تشغيل كل شيء ومحاولة عملية التحديث مرة أخرى. للأسف، لوحة تحكم Discourse الخاصة بي لا تعمل. أود إعادة الأمور إلى العمل مرة أخرى.
معلومات داعمة: هذا على جهاز افتراضي DigitalOcean يخدم موقع WordPress. قمت بإعداده منذ سنوات ونسيت العديد من التفاصيل، ولكن بطريقة سحرية، يقوم Nginx بفحص عنوان URL المطلوب ويقرر ما إذا كان سيقوم بتنشيط WP للمحتوى الرئيسي أو Discourse للمحادثات. جانب WP لا يزال يعمل.
نظرًا للنهج الساذج وغير الرسمي المقترح في مقدمتي، لن يكون مفاجئًا أنني لا أستطيع تحديد الطبيعة الدقيقة لخطأ التثبيت الذي وضعني في هذه الحالة المؤسفة. لا أعرف حتى أين أجد ملفات السجل التي قد تحتوي على أدلة حول إعادة عملية الترقية إلى المسار الصحيح.
أي تلميحات ستكون موضع ترحيب كبير. لست خبيرًا في معرفة إدارة الويب، ولكني مرتاح لاستخدام سطر الأوامر على الأنظمة المستندة إلى Debian. البرنامج المذكور فقط يعمل جميعًا على Ubuntu 20.04.6 LTS، ولدي وصول SSH إلى المنصة ذات الصلة. شكرًا!
للأسف، يبدو أن جهاز DigitalOcean VM الخاص بي صغير جدًا. إذا قلت du -sh بعد تسجيل دخول جديد، فإنه يقول إن القرص المخصص لي /dev/vda1 به حوالي 7 جيجابايت مجانية. بعد أن أعطي أمر launcher rebuild app، تحدث عملية تنزيل وتفريغ كثيرة ثم يتوقف البرنامج النصي، قائلاً إنه يرى فقط 3.3 جيجابايت متاحة ويرفض المتابعة ما لم يكن هناك 5 جيجابايت أو أكثر للاستخدام.
بالطبع لقد فعلت ما بوسعي لتحديد وحذف الأشياء الزائدة، ولكن العثور على 1.7 جيجابايت أخرى للتطهير سيكون أمرًا صعبًا. هل هناك أي نصائح خبراء لهذا الموقف؟ (إما في فئة الأهداف الضخمة الجاهزة للحذف، أو في مجال مطالبة المشغل بأن يكون أقل تطلبًا.)
ملاحظة: بدلاً من ذلك، هل يمكنني إعادة بناء التطبيق على جهاز أقوى ثم تحميل ملف مناسب إلى هذا الجهاز الافتراضي الصغير غير القوي؟ أم أن هذا سحر أسود غامض للغاية؟
حاول تنفيذ الأمر ./launcher cleanup. يمكن لهذه العملية مساعدتك في مسح مساحة التخزين التي يستهلكها Docker.
بالإضافة إلى ذلك، إذا كنت متأكدًا من أنك اتبعت دليل التثبيت الرسمي سابقًا، يمكنك تنفيذ ./launcher destroy app لإزالة الحاوية المعطلة السابقة. ومع ذلك، من الضروري التأكد من أن قاعدة البيانات والتحميلات الخاصة بك مخزنة على نظام ملفات المضيف بدلاً من داخل الحاوية نفسها.
بالفعل، يمكنك إجراء إعادة البناء على جهاز منفصل ثم نقل صورة Docker إلى جهازك الافتراضي. ومع ذلك، ستحتاج إلى تنفيذ الأمر rake db:migrate يدويًا على جهازك الافتراضي. لست متأكدًا تمامًا مما إذا كان هذا النهج قد يؤدي إلى مشاكل أخرى.
لست متأكدًا بنسبة 100%، ولكني أود تجربة ذلك. كيف يمكنني القيام بالخطوة الضرورية للحفاظ على قاعدة بياناتي وملفات التحميل الخاصة بي؟ هل يكفي نسخ الملفات الموجودة في الدليل /var/discourse/shared/standalone إلى مكان آمن قبل القيام بأي شيء جاد؟ (هل هناك إشارة إلى عملية قياسية لمشروع استعادة عملي بهذا الشكل؟)
أعتقد أن رد روبرت العملي سيكون الخيار الأفضل لمعظم الأشخاص في موقف مماثل. أنا أتخذ اتجاهًا مختلفًا لأن سياقي فريد من عدة نواحٍ. من بين هذه النواحي، هذا هو الأكبر: تثبيتي هو مشروع هواية صغير النطاق حيث سيكون فقدان كل شيء مخيبًا للآمال ولكنه ليس كارثيًا.
إذا كانت الأشياء موجودة في الدليل shared/standalone، فأنت في أمان.
إذا كان لديك ووردبريس وديسكورس، فربما تحتاج إلى الترقية إلى جهاز افتراضي بسعة 2 جيجابايت/50 جيجابايت. إذا قمت بحذف جميع النسخ الاحتياطية وتنظيف المشغل، فمن المحتمل أن يكون لديك بعض المساحة المتاحة (أوه، يمكنك أيضًا مسح ذاكرة التخزين المؤقت لـ apt إذا بحثت عن ذلك على جوجل).
قد تكون أو لا تكون نفس المشكلة التي واجهناها للتو: كنا نستخدم واجهة برمجة تطبيقات maxmind لتحويل عنوان IP إلى معلومات جغرافية. الإصدار القديم يتطلب مفتاح واجهة برمجة تطبيقات maxmind في ملف app.yml. التغيير الأخير (غير موثق؟) يتطلب مفتاح واجهة برمجة تطبيقات maxmind واسم المستخدم في ملف app.yml. عدم وجود اسم المستخدم يتسبب في فشل بناء المنتدى.
شكرًا لك، @Frully، ولكن أعتقد أن هذه مشكلة مختلفة. إليك رسالة الخطأ التي توقفني:
Status: Downloaded newer image for discourse/base:2.0.20240602-0023
docker.io/discourse/base:2.0.20240602-0023
لديك أقل من 5 جيجابايت من المساحة الخالية على القرص حيث يوجد /var/lib/docker. ستحتاج إلى مساحة أكبر للمتابعة
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 21G 3.5G 86% /
سأواصل مغامرة استكشاف الأخطاء وإصلاحها الليلة بعد العمل.
أصدقائي، سأغير تكتيكي وأتبع فكرة @merefield في نقل إعداداتي بالكامل إلى خادم افتراضي خاص أكبر. سيكون تحديد كيفية نقل أصولي من الإعداد المعطل إلى الإعداد الجديد العامل جزءًا صعبًا من هذا النشاط، بالتأكيد، لكنني سأجرب بعض الطرق المنطقية وأبدأ موضوعًا جديدًا إذا لم ينجح أي منها. مع الشكر لكل من ساهم، أعتقد أنه من الآمن اعتبار هذا الموضوع مغلقًا.
خاتمة: علمتني عملية الانتقال إلى مضيف جديد شيئًا مفيدًا حول تشغيل أوامر shell مباشرة داخل حاوية Discourse، وهو موصوف الآن في موضوع آخر. هناك القليل من المعلومات الإضافية حول توفير مساحة القرص في هذا الموضوع الآخر أيضًا.