[{"data":1,"prerenderedAt":200},["ShallowReactive",2],{"seo-verification":3,"blog-docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":150,"ctaBody":151,"ctaButton":152,"ctaUrl":153,"relatedPosts":154},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":10,"en":11,"ar":8},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‎10 إعدادات Docker Compose يجب التحقق منها قبل أي نشر إنتاجي: إعادة التشغيل والفحوص الصحية والحدود والأسرار والسجلات.",14,0,false,"2026-08-06T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},3,"النشر","deploiement","bg-success\u002F10 text-success",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg","‏ملف ‎docker-compose‎.yml‎ الذي يعمل على حاسوبك لن ينجو من الإنتاج كما هو. إعادة التشغيل بعد الإقلاع، وحدود الموارد، والأسرار، وتدوير السجلات: كلها إعدادات غائبة افتراضيًا وتسبب أعطالًا صامتة. تجمع قائمة التحقق هذه المعايير العشرة التي يجب فحصها قبل نشر أول حزمة ‎Compose‎ على خادم ‎VPS‎.",[30,34,48,51,85,132,135,138,141,144,147],{"type":31,"title":32,"body":33},"h2","لماذا قائمة تحقق قبل الإنتاج","‏صُمِّم ‎Docker Compose‎ للتطوير: قيمه الافتراضية تفضّل البساطة على المتانة. في التطوير لا تُشكّل هذه الإعدادات أي مشكلة. في الإنتاج تتحول إلى حوادث: قرص ممتلئ الساعة الثالثة فجرًا، قاعدة بيانات ضائعة بعد `docker compose down`. البشرى: تقوية حزمة ‎Compose‎ لا تتطلب إعادة كتابة.",{"type":35,"title":36,"items":37},"ul","النقاط العشر بلمحة",[38,39,40,41,42,43,44,45,46,47],"‏**restart: unless-stopped** — تُعاد الحاوية بعد إقلاع المضيف أو انهيارها","‏**healthcheck** — يكتشف ‎Docker‎ حاوية عالقة ويتيح إعادة التشغيل التدريجي","‏**حدود المعالج والذاكرة** — خدمة جامحة لا يمكنها خنق جيرانها","‏**الأسرار عبر ‎.env‎ أو ‎Docker secrets‎** — لا كلمة مرور بنص صريح","‏**وحدات تخزين مُسمّاة** — تنجو البيانات من `docker compose down`","‏**تدوير السجلات** — `max-size` و`max-file` يمنعان امتلاء القرص","‏**عزل الشبكة** — افصل `frontend` و`backend`","‏**ربط المنافذ** — `127.0.0.1:PORT` خلف وكيل عكسي، لا `0.0.0.0`","‏**وسوم صور مثبّتة** — نسخة أو بصمة، لا `latest`","‏**depends_on مع شرط** — `service_healthy` يتجنب سباقات الإقلاع",{"type":31,"title":49,"body":50},"المتطلبات المسبقة","‏تأكد من امتلاك خادم ‎VPS‎ مثبّت عليه ‎Docker Engine‎ وإضافة ‎Compose v2‎. تحقّق من الإصدار عبر `docker compose version`. ضع ملفك في مجلد مشروع مخصص مع ملف ‎.env‎ بجانبه وأذونات مقيّدة. خطّط لوكيل عكسي في المقدمة. احتفظ بنسخة من ملف ‎Compose‎ تحت إدارة إصدارات.",{"type":52,"title":53,"steps":54},"steps","الخطوات العشر المفصّلة",[55,58,61,64,67,70,73,76,79,82],{"title":56,"body":57},"1. سياسة إعادة التشغيل","‏أضف `restart: unless-stopped` إلى كل خدمة.",{"title":59,"body":60},"2. الفحص الصحي","‏أعلن كتلة `healthcheck:` مع `test` و`interval` و`timeout` و`retries`.",{"title":62,"body":63},"3. حدود الموارد","‏تحت `deploy.resources.limits`، حدّد `cpus` و`memory`.",{"title":65,"body":66},"4. الأسرار خارج الملف","‏لا تضع أبدًا كلمة مرور بنص صريح في YAML. أرجع إليها عبر `env_file` أو `secrets:`.",{"title":68,"body":69},"5. وحدات التخزين المُسمّاة","‏أعلن بياناتك في وحدات تخزين مُسمّاة بمشغّل صريح.",{"title":71,"body":72},"6. تدوير السجلات","‏أضف `logging:` مع `driver: json-file` وخيارَي `max-size` و`max-file`.",{"title":74,"body":75},"7. عزل الشبكة","‏أنشئ شبكات مُسمّاة `frontend` و`backend` وأرفق كل خدمة فقط بما تحتاجه.",{"title":77,"body":78},"8. ربط المنافذ","‏انشر على `127.0.0.1:8080:8080` لا `8080:8080` خلف وكيل عكسي.",{"title":80,"body":81},"9. وسوم الصور المثبّتة","‏استبدل `latest` بنسخة محددة أو بصمة.",{"title":83,"body":84},"10. ترتيب الإقلاع","‏استخدم `depends_on` مع `condition: service_healthy`.",{"type":86,"title":87,"headers":88,"rows":92},"comparison","إعدادات التطوير مقابل الإنتاج",[89,90,91],"الإعداد","افتراضي التطوير","موصى به للإنتاج",[93,97,101,105,109,113,116,120,124,128],[94,95,96],"restart","no","unless-stopped",[98,99,100],"healthcheck","غائب","مُعرَّف بفترة ومحاولات",[102,103,104],"الذاكرة","بلا حد","حد محدد",[106,107,108],"الأسرار","نص صريح ممكن","‎.env أو Docker secrets",[110,111,112],"وحدات التخزين","مجهولة","مُسمّاة",[114,103,115],"السجلات","max-size + max-file",[117,118,119],"الشبكة","الجسر الافتراضي","frontend \u002F backend",[121,122,123],"المنافذ","0.0.0.0","127.0.0.1 خلف وكيل",[125,126,127],"الصورة","latest","نسخة أو بصمة",[129,130,131],"depends_on","الإطلاق فقط","condition: service_healthy",{"type":133,"body":134},"tip","‏اختبر دائمًا حزمتك المقوّاة محليًا: `docker compose config` للتحقق من البنية، ثم محاكاة الإقلاع بـ`docker compose restart`.",{"type":31,"title":136,"body":137},"استكشاف الأخطاء","‏حاوية عالقة في `starting` تعني فشل الفحص الصحي. خدمة تُعاد في حلقة تخفي خطأ إقلاع — راجع `docker compose logs -f service`. منفذ يظل قابلاً للوصول رغم `127.0.0.1` يشير لجدار حماية مفقود.",{"type":31,"title":139,"body":140},"‎CVE-2026-17106 (CopyEscape): تحديث Docker Engine فورًا","‎\u003Ca href=\"https:\u002F\u002Fwww.imperva.com\u002Fblog\u002Fcopyescape-docker-vulnerability-cve-2026-17106\u002F\">CVE-2026-17106\u003C\u002Fa>، الملقّب بـ**CopyEscape**، هو حالة تسابق زمني في `docker cp` أُفصح عنها في 10 أغسطس 2026. حاوية غير موثوقة تنتج أرشيف  tar‎ مشوّهًا يتبع رابطًا رمزيًا خارج الوجهة، مما يؤدي إلى كتابة ملف عشوائي على المضيف. التصحيح في **Docker Engine ≥ 29.7.2** و**Docker Desktop ≥ 4.86.0**.",{"type":31,"title":142,"body":143},"إدارة أسرار Docker: تدوير دون توقّف","‎متغيرات البيئة بنص صريح في ملف ‎Compose‎ تظهر في `docker inspect`. آلية `secrets:` في ‎Docker‎ تحمِّل الأسرار كملفات تحت `\u002Frun\u002Fsecrets\u002F`. للتدوير دون توقّف: أنشئ `db_password_v2` بجانب `v1`، حدّث الخدمة، أعد النشر، احذف `v1` بعد التحقّق.",{"type":31,"title":145,"body":146},"نسخ الأحجام احتياطيًا دون تلف","‎نسخ ملفات حجم ‎PostgreSQL‎ أو ‎MySQL‎ أثناء تشغيلها بـ`rsync` أو `tar` ينتج نسخة تالفة. القاعدة: دائمًا `pg_dump` أو `mysqldump` قبل لقطة الحجم. أدوات مثل ‎Restic‎ و‎Offen Docker Backup‎ تُنظّم هذا تلقائيًا.",{"type":31,"title":148,"body":149},"الخاتمة","‎تحوّل هذه الإعدادات العشرة ملف ‎Compose‎ تطويريًا إلى حزمة إنتاجية. لا يتطلّب أي منها أداةً إضافية.","انشر حزمة Compose الخاصة بك في الإنتاج","‏يمنحك خادم ‎VPS ServOrbit‎ صلاحية الجذر والذاكرة والتحكم بالشبكة اللازمة لتشغيل حزمة ‎Docker Compose‎ مقوّاة.","انشر على VPS ServOrbit","\u002Fvps-cloud",[155,168,184],{"id":156,"slug":157,"slugs":158,"title":161,"excerpt":162,"readTime":19,"views":15,"isPinned":16,"publishedAt":163,"category":164,"categories":165,"featuredImage":25,"bgImage":26,"posterImage":167,"relatedSolution":25},38,"انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps",{"fr":159,"en":160,"ar":157},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","انشر تطبيقاتك باستخدام Traefik على خادم VPS","انشر Traefik كوكيل عكسي على خادم VPS الخاص بك: توجيه تلقائي لحاويات Docker، وشهادات SSL من Let's Encrypt، وموازنة أحمال.","2026-05-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[166],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",{"id":169,"slug":170,"slugs":171,"title":174,"excerpt":175,"readTime":19,"views":15,"isPinned":16,"publishedAt":176,"category":177,"categories":178,"featuredImage":25,"bgImage":26,"posterImage":180,"relatedSolution":181},39,"انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps",{"fr":172,"en":173,"ar":170},"deployer-avec-caddy","deploy-your-applications-with-caddy-on-a-vps","انشر تطبيقاتك باستخدام Caddy على خادم VPS","انشر Caddy على خادم VPS الخاص بك: خادم ويب ووكيل عكسي مع HTTPS تلقائي. ملف Caddyfile من بضعة أسطر يكفي للانتقال إلى الإنتاج.","2026-05-12T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[179],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":182,"appSlug":183},"نشر-التطبيقات-وdevops","caddy",{"id":185,"slug":186,"slugs":187,"title":190,"excerpt":191,"readTime":192,"views":15,"isPinned":16,"publishedAt":193,"category":194,"categories":195,"featuredImage":25,"bgImage":26,"posterImage":197,"relatedSolution":198},41,"نشر-تطبيقاتك-باستخدام-coolify-على-vps",{"fr":188,"en":189,"ar":186},"deployer-avec-coolify","deploy-your-applications-with-coolify-on-a-vps","نشر تطبيقاتك باستخدام ‏Coolify على خادم ‏VPS","دليل شامل لنشر ‏Coolify على خادم ‏VPS: التثبيت، وإعداد ‏HTTPS، وربط ‏Git، ونشر أول تطبيق، وقواعد البيانات، والنسخ الاحتياطية، واستكشاف الأخطاء.",10,"2026-05-10T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[196],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-coolify-poster.svg",{"categorySlug":182,"appSlug":199},"coolify",1787580959542]