لقد كنت أستضيف تثبيت Discourse بنفسي على DigitalOcean droplet لعدة سنوات وقمت بتحديث Discourse عدة مرات دون مشاكل، سواء عبر صفحة المسؤول أو عن طريق تسجيل الدخول عبر SSH واستخدام سطر الأوامر. هذه هي المرة الأولى التي أواجه فيها مشكلة. اليوم (8 فبراير 2025) قمت بتحديث حاوية Docker عبر صفحة المسؤول بشكل جيد. ثم بدأت في تحديث Discourse، وفشل. سجلت الدخول عبر SSH وقمت بتشغيل:
sudo ./launcher rebuild app
وحصلت على هذا الخطأ:
WARNING: Docker version 20.10.14 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed
Please be patient
2.0.20250129-0720: Pulling from discourse/base
toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Unable to find image 'discourse/base:2.0.20250129-0720' locally
docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.
See 'docker run --help'.
Your Docker installation is not working correctly
See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
(لم يعد لدي وصول إلى رسائل الخطأ من صفحة تحديث المسؤول نظرًا لأن خادم Discourse معطل.)
هل يعرف أحد سبب حدوث هذا وما الذي أحتاج إلى القيام به؟
هل هناك صفحة ويب يمكنك أن توصي بها تحتوي على تعليمات حول كيفية ترقية Docker؟
تشغيل lsb_release -a ينتج عنه:
لا توجد وحدات LSB متاحة.
معرف الموزع: Ubuntu
الوصف: Ubuntu 20.04.4 LTS
الإصدار: 20.04
الاسم الرمزي: focal
(لقد كنت أؤجل تحديث لينكس، حيث أنني لم أقم بترقية نظام تشغيل على قطرة DigitalOcean من قبل، ولكني أعرف أنني سأضطر إلى تحمل المسؤولية قريباً.)
لقد نظرت إلى الموقع الذي أرسلته حول استخدام Docker وحدوده قبل أن أنشر هنا، ولكني لا أعرف كيف أفهم أي شيء منه. هل يجب عليّ الدفع مقابل Docker لمجرد تحديث Discourse؟
لقد حاولت إعادة التشغيل عن طريق تشغيل ./launcher start app ولكنني حصلت على رسالة خطأ متطابقة تقريباً مع تلك التي حصلت عليها عند تشغيل ./launcher rebuild app.
لقد مر أكثر من ساعة، لذا حاولت للتو تشغيل ./launcher rebuild app مرة أخرى، ولكنني حصلت على نفس الخطأ.
لقد قمت بتشغيل sudo apt update و sudo apt upgrade بدون حوادث. ثم حاولت تشغيل sudo ./launcher rebuild app مرة أخرى وحصلت على الخطأ:
تحذير: تم إيقاف إصدار Docker 24.0.2، ويوصى بالترقية إلى 24.0.7 أو أحدث.
تم اكتشاف بنية x86_64.
تحذير: سنبدأ الآن في تنزيل صورة Discourse الأساسية
قد تستغرق هذه العملية ما بين بضع دقائق إلى ساعة، اعتمادًا على سرعة شبكتك
يرجى التحلي بالصبر
استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: https://www.docker.com/increase-rate-limit
استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: https://www.docker.com/increase-rate-limit
تعذر العثور على الصورة 'discourse/base:2.0.20250129-0720' محليًا
docker: استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: https://www.docker.com/increase-rate-limit.
راجع 'docker run --help'.
تثبيت Docker الخاص بك لا يعمل بشكل صحيح
لاحظ أنه نفس الخطأ السابق باستثناء أن الإصدار المتوقف الآن هو 24.0.2 بدلاً من 20.10.14. لقد حاولت sudo apt install docker-ce ولكنني أحصل على نفس الخطأ عند تشغيل sudo ./launcher rebuild app. لا يبدو أنه يريد الترقية إلى 24.0.7 أو أحدث.
لقد نجحت للتو في إنشاء تسجيل دخول Docker من موقع Docker. يمكنني تسجيل الدخول إلى موقع Docker، ولكن عندما أقوم بتشغيل docker login من سطر الأوامر وأدخل اسم المستخدم وكلمة المرور (اللذين قمت بنسخهما ولصقهما من سلسلة المفاتيح الخاصة بي لتجنب الأخطاء الإملائية) أحصل على:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied
لقد جربت ذلك عدة مرات في حال قمت بلصق كلمة المرور بشكل خاطئ، كل ذلك دون جدوى. هل هناك تسجيل دخول مختلف يجب أن أقوم بإنشائه؟
هذا أفضل ما يمكن الحصول عليه مع نظام التشغيل الخاص بك. من المحتمل أن يكون كافياً.
نعم. سيحاول ترقية docker فقط. يستخدم docker بعض الأسماء المختلفة في بعض الحالات المختلفة، لذلك اعتقدت أن ترقية كل شيء هو حل أكثر تأكيدًا.
هذه هي بيانات اعتماد docker الخاصة بك التي يطلبها، وليس بيانات اعتماد نظام التشغيل الخاص بك. عندما أفعل ذلك، أحصل على شيء مثل هذا:
USING WEB-BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'
Your one-time device confirmation code is: WZYX-ABCD
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate
هل تقوم بتشغيل هذا بصلاحيات الجذر (root)، أو كمستخدم ليس لديه إذن لاستخدام docker؟
نعم، كانت المشكلة أنني شغلت docker login بدلاً من sudo docker login حيث أنني لم أكن أعمل بصلاحيات الجذر (root). لكنني أدخلت اسم مستخدم وكلمة مرور Docker، وليس اسم مستخدم وكلمة مرور نظام التشغيل. لست بهذه السوء!
لقد شغلت للتو sudo ./launcher rebuild app مرة أخرى ولم أحصل على الأخطاء! طلب مني تشغيله مرة أخرى، فامتثلت. ثم شغلت sudo ./launcher start app وكل شيء يعمل الآن!
شكراً جزيلاً لك! لقد احتجت فقط إلى تسجيل دخول docker (ثم تسجيل الدخول، بصلاحيات الجذر).
لقد كنت مساعداً رائعاً! شكراً مرة أخرى على كرمك وصبرك! نأمل أن يساعد هذا الموضوع الآخرين الذين يواجهون نفس المشكلة.
حسنًا، لا يمكنني دائمًا تخمين ما هو منطقي لمن.
يسعدني أنك اكتشفت الأمر.
شكرًا على التحديث! هذه هي المرة الأولى التي أرى فيها هذه المشكلة، ويسعدني أن الحل الذي اقترحته نجح. أتساءل عما إذا كانت هذه ستكون مشكلة شائعة في المستقبل.