لا يمكن الترقية بسبب إصدار Docker القديم

أثناء الترقية، قمت بتشغيل الأمر cd /var/discourse; git pull; ./launcher rebuild app.

ظهرت لي الرسائل “اكتملت الترقية” و"اكتملت ترقية PostgreSQL". تشير الرسالة الأخيرة إلى “إعادة البناء مرة أخرى”، لكن يبدو أن ذلك لا يُحدث أي فرق.

على الرغم من اكتمال الترقية، لا يمكنني تشغيل التطبيق. عند تنفيذ ./launcher start app، يظهر الخطأ التالي:

Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.

لا يمكنني إعادة تشغيل التطبيق مرة أخرى، ولا أعرف كيف أتابع.

لم يُساعد الأمر ./discourse-doctor (فهو يكتشف فقط أن التطبيق غير قيد التشغيل، ويحاول إعادة البناء وإعادة التشغيل، لينتهي بنفس الخطأ).

لا يمكنني إرفاق ملف لأنني مستخدم جديد، لذا إليك ما أعتقد أنه المقطع ذي الصلة من سجل التصحيح:

فشل إعادة بناء التطبيق.

التحقق من اسم النطاق الخاص بك . . .

نجح الاتصال بـ community.gingkoapp.com.
ينبغي عليك على الأرجح إزالة أي إضافات غير قياسية وإعادة البناء.
محاولة إعادة تشغيل الحاوية الحالية . . .

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=REDACTED  -e DISCOURSE_HOSTNAME=community.gingkoapp.com -e DISCOURSE_SMTP_ADDRESS=smtp.mailgun.org -e DISCOURSE_SMTP_USER_NAME=postmaster@community.gingkoapp.com -e DISCOURSE_SMTP_PASSWORD=REDACTED  -h community-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:fc:04:ee:f5:11 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.
فشل إعادة تشغيل الحاوية.
  1. ما هي إصدار Docker الخاص بك؟
  2. هل جربت الحلول المقترحة في هذا الأسئلة الشائعة؟

شكرًا لك!

إصدار Docker 17.12.0-ce

أنا في بيئة محدودة المساحة (يُطلب مني باستمرار محاولة تنظيف الصور)، لذا يبدو أن هذا سببًا محتملًا لهذا الفشل.

سأجرب الخطوات المذكورة وأعود بالتقرير.

إصدار المناقشة Docker لديك قديم جداً. أنصحك بتحديثه قبل المتابعة.

غير متأكد من كيفية القيام بذلك دون استخدام واجهة الويب (أو curl مع واجهة برمجة التطبيقات)، نظرًا لأنها معطلة حاليًا. لكنني سأبحث في الأمر. سأقوم أولًا بترقية حجم القرص الخاص بـ droplet الخاص بي لأرى ما إذا كان ذلك سيساعد.

(إلا إذا كنت تقصد أن إصدار docker الخاص بي قديم؟)

آه، أنا آسف. قصدت أن أقول إن نسخة Docker قديمة جدًا. حاول تحديثها أولاً. آسف جدًا على الخطأ والالتباس.

لا تقلق، لقد فهمت ما تقصده، حيث طلبت إصدار Docker. أنا أيضًا على الإصدار 14.04، لذا سأقوم بترقيته أولاً إلى 16.04.

شكرًا مرة أخرى على مساهمتك. سأشارك أي تحديثات جديدة.

يا لها من تحديات!

14.04 > 16.04 > 18.04، لديك يوم طويل أمامك.

فقط تذكّر أن 16.04 ستصل إلى نهاية دعمها في 2021، لذا انتقل على الأقل إلى 18.04

أعمل بجد فقط لأبقى في مكاني… هذه قصة حياتي! البرمجيات تتحرك بسرعة كبيرة بالنسبة لي! :stuck_out_tongue_closed_eyes:

أتمنى لكم كل التوفيق في هذه المغامرة الجديدة لترقيات البرمجيات. :confetti_ball:

إذا كان هذا خادمًا افتراضيًا خاصًا (VPS)، فلا حاجة لترقية الخادم الحالي. إنشاء خادم جديد يعمل بنظام 20.04 ونقل موقعك إليه أسرع وأسهل بكثير.

لكن حاويتهم معطلة ولا تعمل لعدة أسباب.

سيتم نقل آخر نسخة احتياطية تلقائية من المجلد المشترك إلى الخادم الجديد.

أين يمكنني العثور على أقدم إصدار مدعوم حاليًا من docker مع Discourse؟

هنا

نعم، هذا ما أفعله في الوقت الحالي. يجب أن يكون أسرع بكثير من ترقية النسخة الحالية… أضع أصابعي على الصليب لأتمكن من الاستعادة من ملفات النسخ الاحتياطي (التي لا يزال بإمكانني الوصول إليها على الخادم القديم).

شكرًا..!

يبدو إذن أن هذا الإصدار مدعوم جيدًا في discourse الحالي.. لماذا تعتقد أنه قديم جدًا يا @itsbhanusharma؟

من قال إنه مدعوم؟
أي إصدار من Docker يعود لأكثر من بضع سنوات لا يدعمه حتى مطوره، فكيف تتوقع أن يدعمه Discourse؟

أنا فقط أبحث في الكود المصدري…

الآن كل شيء على ما يرام. قمت بإنشاء خادم جديد (Droplet) على Digital Ocean واستعدت النسخة الاحتياطية. أعتقد أن أحدث نسخة احتياطية كانت تالفة، لكن على الأقل فقدت منشورًا أو اثنين فقط، ونجحت في الاستعادة من النسخة الاحتياطية السابقة لذلك.

شكرًا لكم جميعًا على مساعدتكم!