هذه إجابة مقدمة من ask.discourse.org. يرجى الإبلاغ عن فائدتها.
1. تعيين حدود ثابتة لوحدة المعالجة المركزية (CPU) والذاكرة العشوائية (RAM) لـ Discourse Docker
عند تثبيت Discourse على خادم افتراضي خاص (VPS) عبر دليل GitHub الرسمي، لا يتم تضمين حدود الموارد مثل --memory و--cpus افتراضيًا. بينما يمكنك إضافة هذه العلامات يدويًا إلى أمر تشغيل Docker، فإن أي تغييرات تتم مباشرة باستخدام docker stop وأمر docker run جديد ستُفقد بعد تشغيل ./launcher rebuild app. يقوم البرنامج النصي launcher دائمًا بإعادة إنشاء الحاوية.
الأساليب الموصى بها:
أ) تعديل البرنامج النصي للـ Launcher
لفرض حدود الموارد بشكل دائم، يجب عليك تعديل البرنامج النصي launcher الذي يستخدمه Discourse لبدء حاويات Docker. على سبيل المثال، حول السطر 289، قم بتكييف:
$docker_path run $restart_policy "${env[@]}" -h "`hostname`-$config" \
-m="4g" --cpus="2.0" -e DOCKER_HOST_IP=$docker_ip ...
يضمن هذا أن كل ./launcher rebuild يقوم بإنشاء الحاوية بحدودك.
المصدر والمزيد من المعلومات:
ب) تحرير أمر Docker مباشرة
بينما من الممكن تقنيًا تشغيل Docker بحدود مخصصة عن طريق نسخ أمر docker run المعاد بناؤه، إلا أن هذا ليس دائمًا وغير موصى به.
لا توجد بعد طريقة رسمية ودائمة “مضمنة” لتمرير وسيطات Docker --memory أو --cpus لأدوات النشر القياسية لـ Discourse، بخلاف تعديل الـ launcher.
2. اسم الحاوية
افتراضيًا، يقوم الـ launcher الخاص بـ Discourse بتسمية الحاوية app. يمكنك تأكيد ذلك باستخدام docker ps. تغيير اسم الحاوية سيتطلب أيضًا تعديل الـ launcher أو القوالب مباشرة.
اقرأ المزيد: Discourse في حاوية Docker
روابط مفيدة
- تحديد استخدام ذاكرة Discourse على خادم مخصص
- تكوين Discourse Docker على خوادم بها المزيد من ذاكرة الوصول العشوائي ووحدة المعالجة المركزية
إذا كنت تبحث عن طريقة أكثر أناقة ودائمة (مثل قالب أو ميزة مدعومة في الـ launcher)، تحقق من هذا النقاش ذي الصلة:
مفاتيح لـ VPS مقيدة الموارد؟