I, [2023-06-16T11:39:43.530890 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
error An unexpected error occurred: "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz: ESOCKETTIMEDOUT".
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean' failed with return #<Process::Status: pid 281 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'"]}
bootstrap failed with exit code 1
** 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.
f485460571ab9e30e0d6917b05c9a8fe1772df13d8cae9fe67108961fae71039
==================== END REBUILD LOG ====================
نفس المشكلة عند محاولة التشغيل ./launcher rebuild app
حاولت تنزيل date-fns-2.29.3.tgz على مضيف Linux، ونجح الأمر.
wget https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz
Connecting to registry.yarnpkg.com (104.16.26.35:443)
saving to 'date-fns-2.29.3.tgz'
date-fns-2.29.3.tgz 100% |*************************************************************************************************************| 712k 0:00:00 ETA
'date-fns-2.29.3.tgz' saved
ومع ذلك، عندما كنت أنتظر اكتمال الخطوة 9 (بعد تشغيل ./discourse-setup) وكل شيء يتم بناؤه، كان يفشل بخطأ ESOCKETTIMEDOUT متعلق بـ yarn. آخر رسالة تحاول التشغيل هي [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production \u0026\u0026 yarn cache clean'.
الحل
تحتاج إلى تثبيت محرر؛ أفضل nano لذا apt-get install nano يقوم بالمهمة. ثم انتقل إلى /var/discourse/templates وشغل: nano web.template.yml. للمقارنة، إليك الملف الذي نسخته من github والمنطقة ذات الأهمية حول السطر 159. هل تبدو مألوفة؟ إنها نفس الأوامر المذكورة أعلاه قبل فشلها. نحتاج إلى إضافة قسم جديد فوق هذا السطر لزيادة المهلة.
لقد واجهت نفس مهلة انتهاء الوقت، لكنني واجهت مشاكل في تطبيق الحل المقترح، لذا أود إضافة بعض التفاصيل.
أولاً، واجهت بعض الصعوبة في العثور على /var/discourse/templates، لأن تثبيت Discourse الخاص بي موجود في موقع غير قياسي. كنت أبحث داخل Docker، وهو ما لا معنى له بالطبع.
ثانياً، لم يعد رقم السطر 159 صحيحاً. أفترض أنك تشير إلى هذا القسم من template.yml:
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
ثالثاً، لست على دراية تامة بـ yaml، أو pups، أو yarn، أو كيفية استخدامها في Discourse، ولم أرغب في التخمين. بدلاً من ذلك، جربت هذا التغيير على القسم الأصلي:
- exec:
cd: $home
hook: yarn
cmd:
- |
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'
هذا يعمل بالنسبة لي. يستغرق ./launcher rebuild app الآن وقتاً طويلاً جداً (أكثر من ساعتين بالنسبة لي)، ولكنه على الأقل يكتمل، ويعمل المنتدى مرة أخرى.
أخيراً، أود أن أضيف أن هذه المشكلة (بالنسبة لي) لم تكن بالتأكيد بسبب نقص الذاكرة: أنا أستخدم خادم افتراضي خاص (VPS) بـ 32 جيجابايت مثبتة، منها 24 جيجابايت كانت متاحة عند حدوث المشكلة.