عند تشغيل ./launcher rebuild app، أحصل على الأخطاء التالية:
تم اكتشاف بنية x86_64.
تحذير: سنبدأ الآن في تنزيل صورة Discourse الأساسية
قد تستغرق هذه العملية ما بين بضع دقائق إلى ساعة، اعتمادًا على سرعة شبكتك
يرجى التحلي بالصبر
استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: Usage and limits | Docker Docs
استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: Usage and limits | Docker Docs
تعذر العثور على الصورة ‘discourse/base:2.0.20241203-0251’ محليًا
docker: استجابة خطأ من الخادم: toomanyrequests: لقد وصلت إلى حد طلب السحب الخاص بك. يمكنك زيادة الحد عن طريق المصادقة والترقية: Usage and limits | Docker Docs.
انظر ‘docker run --help’.
تثبيت Docker الخاص بك لا يعمل بشكل صحيح
انظر: Troubleshoot docker installation issues
الموقع يعمل بشكل جيد، ولكن أحتاج إلى تثبيت بعض الإضافات. أحاول الحصول على إعادة بناء نظيفة للتطبيق قبل إجراء أي تغييرات على ملف app.yml. أفكار؟
*** حل للمشكلة ***
كان خادمي يستخدم IPv6. يستخدم DockerHub كتلًا أكبر من IPv6 لتحديد حدود الطلبات. نظرًا لأن خادمي مستضاف على Digital Ocean، فقد تم تجميعي مع مجموعة أكبر من الخوادم وتجاوزت الحد الأقصى للطلبات. قمت بإيقاف تشغيل IPv6 وعاد كل شيء إلى طبيعته. إليك التعليمات الخاصة بإيقاف تشغيل IPv6 على خادم DO.
قد يكون الاختبار المفيد هو صورة “أهلاً بالعالم” الصغيرة جدًا:
/var/discourse# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
478afc919002: Pull complete
Digest: sha256:5b3cc85e16e3058003c13b7821318369dad01dac3dbb877aac3c28182255c724
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
docker run hello-world
Unable to find image ‘hello-world:latest’ locally
docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: Usage and limits | Docker Docs.
See ‘docker run --help’.
لقد واجهت هذه المشكلة للتو في منتدين من منتديات Discourse (خوادم/عناوين IP مختلفة).
Please be patient
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
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.20241203-0251' 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
آمل ألا يكون هذا تقييدًا مفاجئًا من Docker لمحاولة إجبار الناس على الدفع.
هذا ما يقوله مساعد الذكاء الاصطناعي الخاص بـ Docker، ولكن الحدود الجديدة للمعدل لا يُفترض أن تحدث حتى الأول من مارس. (إذا قامت Discourse بأكثر من 10 عمليات سحب أثناء إعادة البناء، فمن المحتمل أن يؤثر ذلك على الأشخاص. تعديل: يبدو أنها بالفعل محدودة بـ 10.)\n\n> بناءً على مصادر المعرفة المقدمة، يبدو أن Docker قد أجرت بالفعل تغييرات على سياسات تحديد المعدل الخاصة بها مؤخرًا. إليك ما يمكنني إخبارك به:\n\n> أعلنت Docker عن حدود استخدام ومعدلات جديدة لـ Docker Hub ستدخل حيز التنفيذ في 1 مارس 2025. وفقًا لوثائق حدود استخدام ومعدلات Docker Hub:\n\n> 1. للمستخدمين غير المصادق عليهم، يوجد حد لسحب 10 مرات في الساعة لكل عنوان IP.\n> 2. للمستخدمين الشخصيين المصادق عليهم في Docker، يبلغ حد السحب 40 مرة في الساعة.\n> 3. لمستخدمي Docker Pro و Team و Business المصادق عليهم، لا توجد حدود للسحب.\n\n> بالإضافة إلى ذلك، قدمت Docker حدود سحب جديدة بناءً على مستويات الاشتراك:\n\n> - Docker Personal: 40 سحبة في الساعة\n> - Docker Pro: 25 ألف سحبة شهريًا\n> - Docker Team: 100 ألف سحبة شهريًا\n> - Docker Business: مليون سحبة شهريًا\n\n> تم الإعلان عن هذه التغييرات في ملاحظات إصدار Docker Hub بتاريخ 14 مايو 2020، والتي تنص على:\n\n> “قامت Docker بتمكين حدود معدل التنزيل لطلبات التنزيل والسحب على Docker Hub. هذا يحد من عدد الكائنات التي يمكن للمستخدمين تنزيلها خلال فترة زمنية محددة.”\n\n> لتجنب الوصول إلى هذه الحدود، يمكنك:\n\n> 1. المصادقة على عمليات السحب الخاصة بك إذا لم تكن قد قمت بذلك بالفعل.\n> 2. الترقية إلى خطة مدفوعة إذا كنت بحاجة إلى حدود أعلى.\n> 3. تطبيق أفضل الممارسات لإدارة استخدام Docker Hub، مثل استخدام التخزين المؤقت وتحسين استراتيجيات السحب الخاصة بك.\n\n> إذا كنت تواجه حدودًا للمعدل على مواقع متعددة، فمن المحتمل أنك تصل إلى حدود لخدمات مختلفة أو أن عنوان IP الخاص بك تتم مشاركته، مما يؤدي إلى تحديد معدل تراكمي. ومع ذلك، فإن المعلومات المقدمة تتعلق تحديدًا بحدود معدل Docker Hub.
لقد تمكنت من ترقية كل من مدير دوكر (docker manager) ومستويات نظام ديسكورس (discourse system) من داخل لوحة الإدارة دون أي مشاكل. في كل مرة أحاول فيها تشغيل إعادة بناء المشغل (launcher rebuild)، أحصل على أخطاء الحد الأقصى للمعدل (rate limit errors).
لقد فتحت حالة دعم مع DigitalOcean لهذا الأمر ولدي تأكيد بأن هذه مشكلة، ولكن فقط لقطرات IPv6 الممكّنة.
يفرض Docker Hub قيودًا على المعدل بناءً على نطاق الشبكة بدلاً من عنوان IP واحد لـ IPv6 (مما يستنفد 100 سحبة كل 6 ساعات للسحوبات المجهولة على الفور تقريبًا لمقدمي خدمات VPS الكبار).
إذا قمت بتعطيل IPv6، فيجب أن تكون قادرًا على إعادة البناء.
نفس المشكلة إذن، حاول تعطيل IPv6 في إدارة الويب الخاصة بـ DO إذا كنت لا تحتاجه لخدمة أخرى (أعتقد أنه يمكنك القيام بذلك دون إعادة تشغيل القطرة) وحاول مرة أخرى.