فشل إعادة البناء مع git reset --hard origin tests-passed فشل مع العودة

أنا أدير Discourse داخل حاوية Docker، وعندما أحاول استخدام أداة launcher لإعادة بناء ملف app.yml، أواجه الفشل التالي:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && git reset --hard origin tests-passed failed with return #<Process::Status: pid 257 exit 128>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"code", "cmd"=>["git remote set-branches --add origin master", "git remote set-branches origin $version", "git fetch --depth 1 origin $version", "git checkout $version", "git reset --hard origin $version", "git clean -f", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp", "find public/plugins/ -maxdepth 1 -xtype l -delete"]}
a84cc388fbc4b16307c2081e17b03c5eee578e1155fa1e057147601119d89a34
** FAILED TO BOOTSTRAP ** الرجاء التمرير للأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من خطأ واحد.
قد تساعدك أداة ./discourse-doctor في تشخيص المشكلة.
==================== END REBUILD LOG ====================

يبدو أن المشكلة تتعلق بـ Git وحالة مستودع Discourse الرسمي على GitHub، لكنني لا أعرف بما يكفي عن Docker أو Git لأفهم ذلك بشكل قاطع. حاولت تشغيل ./discourse-doctor كما أُقترح، لكن النتيجة كانت تكرار نفس المشكلة دون أي فائدة.

حسناً، نعم.. كان هناك شيء ما يحدث مع مستودع discourse لأنني لم أفعل شيئاً.. لقد قمت بتشغيل إعادة البناء مرة أخرى والآن يعمل..

  1. مخيف أن حالة مستودع مشوهة قد تعطل إعدادك بالكامل

  2. أيضاً مخيف عدم وجود استعادة للرجوع للخلف عندما لا تتعاون المستودعات البعيدة.. كان المنتدى بأكمله يعرض خطأ 502 bad gateway حتى نجح في إعادة بناء نفسه. ربما يكون هناك شيء في docker مثل سجل الصور أو شيء ما يمكن الرجوع إليه.. لا أعرف.. لكن يبدو أن دعم الرجوع للخلف سيكون أمراً مهماً جداً إذا كان الفرق بين عمل موقعك وعدمه يعتمد كلياً على أن تكون مستودعات github مرتبة بشكل صحيح. بالتأكيد، يمكن للمرء أن يجادل بأنه يجب عليّ أخذ نسخة احتياطية من الخادم قبل محاولة إعادة البناء.. يمكن للمرء أن يجادل بذلك أعتقد.

إذا فشل إعادة البناء، يمكنك عادةً تشغيل الأمر التالي:

./launcher start app

شكرًا لك يا جاي،

كان الحاوية تبدأ.. تمكنت من استخدام docker top لرؤية nginx يعمل داخل الحاوية، وهذه النسخة هي التي كانت تسبب خطأ HTTP 502 “Bad Gateway”. تأكدت من ذلك بإيقاف الحاوية ثم الحصول على رسالة Connection Refused، مما يعني أن الحاوية كانت تعمل.. لكن discourse فشلت في التشغيل بشكل صحيح.

هل تقصد أن استخدام أداة launcher يجب أن يقوم بتشغيل تطبيق discourse داخل الحاوية؟ أم أن ذلك يتطلب تنفيذه من داخل الحاوية نفسها؟

أعتذر عن جهلي هنا.

أقول إنه إذا فشل إعادة البناء، فيمكنك عادةً تشغيل الحاوية القديمة باستخدام أمر التشغيل.

يستغرق تشغيل Rails بعض الوقت، لذا فإن ظهور خطأ 502 لمدة دقيقة أو دقيقتين أمر متوقع.