خطأ في حد معدل Docker أثناء إعادة بناء المشغل

عند تشغيل ./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.

5 إعجابات

حاولت مرة أخرى بعد 10 ساعات. نفس النتيجة. نافذة الوقت في Docker Hub هي 6 ساعات.

هذا تثبيت discourse نظيف خلال الـ 40 يومًا الماضية. لا توجد إضافات أو تخصيصات في الوقت الحالي. لذا…

كيف يتم الوصول إلى Docker Hub من منظور بيانات الاعتماد؟ مجهول؟ تسجيل دخول Discourse؟

هل هناك طريقة لتعيين بيانات اعتماد شخصية لـ Docker Hub لتجاوز محدد المعدل؟

شكرا لك.

إعجاب واحد (1)

قد يكون الاختبار المفيد هو صورة “أهلاً بالعالم” الصغيرة جدًا:

/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/

إعجابَين (2)

نفس النتائج:

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’.

إعجاب واحد (1)

لقد واجهت هذه المشكلة للتو في منتدين من منتديات 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 لمحاولة إجبار الناس على الدفع.

إعجاب واحد (1)

هذا ما يقوله مساعد الذكاء الاصطناعي الخاص بـ 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).

إعجابَين (2)

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

أين يتم استضافتك؟

لقد فتحت حالة دعم مع DigitalOcean لهذا الأمر ولدي تأكيد بأن هذه مشكلة، ولكن فقط لقطرات IPv6 الممكّنة.

يفرض Docker Hub قيودًا على المعدل بناءً على نطاق الشبكة بدلاً من عنوان IP واحد لـ IPv6 (مما يستنفد 100 سحبة كل 6 ساعات للسحوبات المجهولة على الفور تقريبًا لمقدمي خدمات VPS الكبار).

إذا قمت بتعطيل IPv6، فيجب أن تكون قادرًا على إعادة البناء.

4 إعجابات

مواقعي موجودة على DigitalOcean مع تمكين IPv6.

إعجاب واحد (1)

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

إعجاب واحد (1)

لا أرى طريقة لتعطيل IPv6 في إعدادات القطرة، لكنني سألقي نظرة فاحصة لاحقًا.


كنت مخطئًا بشأن نجاح التحديثات من لوحة التحكم. نجح أحدها لكن الآخر تعطل في المنتصف. تقول لوحة التحكم الآن إنها قديمة:

تعديل: اختفت الرسالة بعد إعادة تشغيل القطرة.

discourse-2

لكن النقر عليها يأخذني إلى صفحة تقول إن كل شيء محدث:

كانت هذه رسالة الخطأ:

...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
undefined
 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL  تم قتل الأمر بـ SIGKILL (إنهاء قسري): ember build -prod
Docker Manager: فشل الترقية
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/commands/runner/runner_command.rb:41:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/commands/runner/runner_command.rb:41:in `block in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.5/lib/active_support/execution_wrapper.rb:92:in `wrap'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/commands/runner/runner_command.rb:40:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/command.rb:71:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/command.rb:149:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/command.rb:69:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.1.5/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
جارٍ تشغيل عامل Unicorn واحد (1) تم إيقافه مبدئيًا

أدى إيقاف تشغيل IPv6 على خادم Digital Ocean إلى حل المشكلة: إليك التعليمات من DO حول كيفية إيقاف تشغيل IPv6.

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.