فشل الترقية - قد نحتاج إلى مساعدة لمحاولة الإصلاح عبر SSH

Yesterday I had an admin message about upgrades. From the web UI, I did the Docker upgrade first and this seemed to go well. After it finished, the upgrade button for Discourse was enabled and I initiated that. At some point something broke and now our site is down. I was on my phone at the time and I didn’t manage to look at the log carefully to see where exactly things broke, before

I’m currently pocking around over SSH and about to try ./launcher rebuild app to hopefully get a better idea about what exactly is the problem in the upgrade. I’ve never done Discourse command-line repair and I want to make sure that I don’t blow away our data. Looking over app.yml, I see that the container is stateless - great - and that all the data is on the host, accessed as a shared volume.

I ran discourse-doctor and it looks like disk space is not the issue. Will the rebuild app command touch the local data store?

Yes, do the ./launcher rebuild app that should do it. It will not blow away your data.

If you’d rather not to it yourself, please see Automatic Rebuilds When You Need Them.

إعجابَين (2)

Thanks, the rebuild seems to have worked - the GitHub avatars and favicon don’t show for some reason, though.

إعجاب واحد (1)

مرحبًا!
لقد قمت بالترقية، لكن الصفحة أظهرت لي خطأ 504 Gateway Time-out.
لقد فعلت ذلك، لكنه لا يزال لا يعمل.

cd /var/discourse
git pull; ./launcher rebuild app

هل لديك أي فكرة عن سبب عدم استمرار عمله؟

لا، لا توجد فرصة كبيرة لوجود أي فكرة. أفضل تخميني هو أنك لم تنتظر حتى يعيد الخادم تشغيله بالكامل، لكن الأمر قد يتعلق بأي شيء. هل اكتمل إعادة البناء دون أخطاء؟ هل نفدت مساحة القرص؟ هل تظهر الأوامر docker ps أن الحاوية تعمل؟

أمر docker ps يعرض لي هذا:
Captura de pantalla 2020-11-04 a las 16.52.52

عندما أدخل ./launcher، يخبرني أن الحاوية غير قيد التشغيل. كيف يمكنني تشغيلها؟

في ملف السجل، أرى هذا:
لم يتم العثور على rake-13.0.1 في أي من المصادر
شغّل bundle install لتثبيت الـ gems المفقودة.
هل لهذا أهمية؟
شكرًا لك

اسم الحاوية هذا يعني أن إعادة البناء لا تزال جارية، ولمدة 4 دقائق فقط.

يمكنك متابعة السجلات باستخدام الأمر التالي:

docker logs -tf sweet_chatelet

هل تتحرك السجلات؟

إعجاب واحد (1)

تم الانتهاء من إعادة البناء، لكنه يظهر فقط ما يلي:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

وعند تشغيل ./launcher enter app، أحصل على هذا:
خطأ في استجابة الديمن: الحاوية … غير قيد التشغيل

إعجاب واحد (1)

إذن، يفشل إعادة البناء في إحدى الخطوات.

جرّب إعادة بناء جديدة باستخدام الأمر ./launcher rebuild app فقط وراقب السجلات. عندما يتوقف بفشل آخر، قم بالتمرير للأعلى وابحث عن رسائل الخطأ، والتي ستوضح ما هي المشكلة. انسخها هنا وسنتمكن من المساعدة.

إعجاب واحد (1)

@Falco إذا قمت بتشغيل ./launcher logs app، فسأحصل على هذا:
لم يتم العثور على rake-13.0.1 في أي من المصادر
قم بتشغيل bundle install لتثبيت الحزم المفقودة.

هل هذه هي السجلات بالكامل؟ هل يمكنك مشاركة جزء أكبر من السجلات؟

هل هذا الخادم خلف جدار حماية غريب أو بيئة مؤسسية؟ أم أنه خادم افتراضي خاص (VPS) بسيط على الإنترنت؟

بعد إكمال أمر ./launcher rebuild app، يظهر لي هذا: ** فشل في التمهيد ** يرجى التمرير لأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من رسالة واحدة.
قد يساعد ./discourse-doctor في تشخيص المشكلة.

لكن ./discourse-doctor لا يحل أي شيء.

هل يمكنك التمرير لأعلى والبحث عن رسائل الخطأ السابقة؟

لا أعرف ما إذا كان هذا سيساعدك على رؤية ما يحدث!

الصور الثلاث الأولى مأخوذة من ./launcher logs app وهي غير مفيدة.

الصورة الأخيرة مأخوذة من ./launcher rebuild app وهي التي تحتوي على الإجابات! يرجى التحقق منها بحثًا عن الأخطاء، وإذا أمكن، انسخ مخرجاتها كاملةً كنص هنا.

شكرًا لك!

/pups/lib/pups/config.rb:106:in `block (2 levels) in run_commands': Invalid run command cd (SyntaxError)
	from /pups/lib/pups/config.rb:100:in `each'
	from /pups/lib/pups/config.rb:100:in `block in run_commands'
	from /pups/lib/pups/config.rb:99:in `each'
	from /pups/lib/pups/config.rb:99:in `run_commands'
	from /pups/lib/pups/config.rb:78:in `run'
	from /pups/lib/pups/cli.rb:31:in `run'
	from /pups/bin/pups:8:in `<main>'
44bf915bdff740d4441ad5239f79d5b14a6ed375300c52b85c10eefb7af677a2
** فشل التمهيد ** يرجى التمرير لأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من خطأ.
قد يساعدك ./discourse-doctor في تشخيص المشكلة.

يبدو أن ملف app.yml يحتوي على أوامر غير صالحة.

ربما حاولت إضافة إضافة وأضفت بعض الأحرف غير الصالحة؟

هل يمكنك لصقه هنا بعد إزالة أي كلمات مرور؟

بالتأكيد، إليك الملف:
app.txt (3.4 كيلوبايت)

يبدو أنك حاولت تمكين دعم المجلدات الفرعية مع Docker، لكن تنسيق المسافة البادئة في الكتلة الأولى تعطل.

كل ما تحتاجه هو إضافة مسافتين إضافيتين في بداية الأسطر 82 و83 و84 و85.

بعد ذلك، احفظ الملف وأعد البناء.

3 إعجابات