أتساءل عما إذا كان بإمكاني حل هذه المشكلة إما عن طريق تفريغ ذاكرة Redis أو تحديثها؛ حيث لم يتم لمسها فعليًا خلال الأشهر الثمانية الماضية. لم أتعامل شخصيًا مع Redis من قبل، لكن نسخة Discourse الخاصة بـ Tests-Pass تم إعدادها باستخدام local_discourse بدلاً من Discourse Docker الموصى به الآن في هذا المنتدى. المشكلات التي أواجهها تتعلق بعدم إرسال البريد الإلكتروني إلى المستخدمين. أي مساعدة أو اقتراحات مُقدَّرة!
Sidekiq غير قيد التشغيل. تُنفَّذ العديد من المهام، مثل إرسال رسائل البريد الإلكتروني، بشكل غير متزامن بواسطة Sidekiq. يرجى التأكد من تشغيل عملية Sidekiq واحدة على الأقل.
هل سيساعدني استخدام launcher لإعادة بناء أو إعادة تشغيل حاوية redis؟
الاستخدام: launcher COMMAND CONFIG [–skip-prereqs] [–docker-args STRING]
الأوامر:
start: بدء/تهيئة حاوية
stop: إيقاف حاوية تعمل
restart: إعادة تشغيل حاوية
destroy: إيقاف وإزالة حاوية
enter: فتح قشرة لتشغيل الأوامر داخل الحاوية
logs: عرض سجلات Docker الخاصة بحاوية
bootstrap: تهيئة حاوية للتهيئة بناءً على قالب
run: تشغيل الأمر المعطى مع التهيئة في سياق آخر صورة تم تهيئتها
rebuild: إعادة بناء حاوية (إزالة القديمة، تهيئة، بدء جديدة)
cleanup: إزالة جميع الحاويات التي توقفت لأكثر من 24 ساعة
start-cmd: توليد أمر Docker المستخدم لبدء الحاوية
الخيارات:
–skip-prereqs عدم التحقق من متطلبات launcher الأساسية
–docker-args حجج إضافية يتم تمريرها عند تشغيل docker
–skip-mac-address عدم تعيين عنوان MAC
–run-image تجاوز الصورة المستخدمة لتشغيل الحاوية
هل قمت بالتثبيت وفقًا لدليل التثبيت القياسي الرسمي لـ Discourse أم بطريقة أخرى؟ إذا كان لديك تثبيت قياسي، نعم، فإن تشغيل أمر ./launcher rebuild app سيحل على الأرجح أي مشكلة تواجهها.
ليس بعد، لكننا نحدد موعدًا للهجرة. يعمل نظام Discourse لدينا منذ ما يقرب من ثلاث سنوات، ولا أرغب في إضافة أي توقف غير ضروري. يتم صيانة نسختنا بالكامل بواسطة متطوعين، لذا كنت أتعلم بنفسي كيفية صيانتها خلال الشهر الماضي. إذا كان إصلاح سريع لـ Redis سيساعد (فقد يعمل هذا الحاوية منذ عام دون لمس)، فأود تطبيقه.
إذا لم تقم بتثبيت قياسي من البداية، فليس هناك من يدري ما الذي قد يحل مشكلتك الحالية.
أنصحك بإعداد آلة افتراضية جديدة وإجراء تثبيت تجريبي فيها للتأكد من عملها. عند إجراء النقل، يمكنك وضع المنتدى القديم في وضع القراءة فقط، وإنشاء نسخة احتياطية، ثم استعادتها على الآلة الافتراضية الجديدة، وتغيير إعدادات DNS مع توقف شبه معدوم. (في الواقع، سيكون هناك توقف بسيط حيث ستحتاج إلى إعادة البناء بعد تغيير DNS للحصول على شهادة Let’s Encrypt وتثبيتها)
شكرًا لك، فـ Let’s Encrypt يجب أن يكون الأمر في الواقع سهلًا جدًا نظرًا لأنه تم إعداده ليكون تعديلًا بسيطًا لـ nginx reverse proxy. من الجيد سماع ذلك، ونتوقع أن يكون هناك بعض التوقف المؤقت. نحتاج فقط إلى جدولة ذلك في ساعة غير عمل.
أنا على وشك الهجرة واستعادة النسخة الاحتياطية في الصور الرسمية. هل هناك أي شيء يجب أن أعرفه بخصوص مسح الرسائل الإلكترونية المخزنة وما شابه ذلك، والذي قد يؤدي إلى إزعاج المستخدمين بمجرد تشغيل Sidekiq وما إلى ذلك بشكل صحيح. شكرًا!
لذا، نحاول اتباع التوثيق الخاص بتثبيت صور Docker الرسمية لـ Discourse ونواجه مشاكل. لقد استنتجنا أننا نفتقر إلى حاوية Redis، وحاوية استقبال البريد، وحاوية البيانات التي كانت موجودة سابقًا في Docker.
يبدو أن التثبيت السابق يتضمن: app.yml data.yml mail-receiver.yml redis.yml
هذا التكوين متعدد الحاويات يختلف عن تعليمات التثبيت الأساسية. لدي نسخة احتياطية من /var/discourse القديمة للرجوع إليها.
FAILED │················································································································
-------------------- │················································································································
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 645 exit 1> │················································································································
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn' │················································································································
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]} │················································································································
bbf0e57ac69f1febe2a5f149aa7e6e12541c3c23aaf199188fdf19d507254b58 │················································································································
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one. │················································································································
./discourse-doctor may help diagnose the problem.
يرجى التمرير للأعلى والبحث عن رسائل خطأ سابقة، فقد يكون هناك أكثر من خطأ.
يبدو أننا أغفلنا الخطوة ./launcher bootstrap data ./launcher start redis
[Mon 11 May 2020 12:53:20 AM UTC] تشغيل أمر إعادة التحميل: sv reload nginx │················································································································
فشل: nginx: runsv غير قيد التشغيل │················································································································
[Mon 11 May 2020 12:53:20 AM UTC] خطأ في إعادة التحميل لـ: │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] لم يتم تغيير النطاقات. │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] تخطي، وقت التجديد التالي هو: Thu 09 Jul 2020 11:33:04 PM UTC │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] أضف '--force' لإجبار التجديد. │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] تثبيت المفتاح في:/shared/ssl/discuss.noisebridge.info_ecc.key │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] تثبيت السلسلة الكاملة في:/shared/ssl/discuss.noisebridge.info_ecc.cer │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] تشغيل أمر إعادة التحميل: sv reload nginx │················································································································
فشل: nginx: runsv غير قيد التشغيل │················································································································
[Mon 11 May 2020 12:53:21 AM UTC] خطأ في إعادة التحميل لـ: │················································································································
run-parts: تنفيذ /etc/runit/1.d/remove-old-socket │················································································································
تم بدء runsvdir، معرف العملية هو 626 │················································································································
نجاح: تشغيل redis: (معرف العملية 636) 0s │················································································································
chgrp: مجموعة غير صالحة: 'syslog' │················································································································
نجاح: تشغيل postgres: (معرف العملية 639) 0s │················································································································
rsyslogd: imklog: لا يمكن فتح سجل النواة (/proc/kmsg): العملية غير مسموح بها. │················································································································
rsyslogd: فشل تفعيل وحدة imklog [v8.1901.0 جرب https://www.rsyslog.com/e/2145 ] │················································································································
معرف عملية supervisor: 640 معرف عملية unicorn: 667
هذا صحيح، فقد قام المستوردون بتعيين ذلك حتى لا يتم إرسال 50,000 رسالة بريد إلكتروني بعد عملية الترحيل. قم بتفعيل البريد الإلكتروني بحذر في إعدادات موقعك.