مولد Docker Compose
إنشاء ملفات docker-compose.yml باستخدام محرر بصري
الخدمات الخدمات: 0
تحتفظ الإصدارات 3.5-3.9 بحقل version للمستهلكين الأقدم. يستخدم Docker Compose الحالي مواصفات Compose.
إضافة سريعة لقالب خدمة
لم تُضف أي خدمات بعد. اختر قالبًا أو أضف خدمة فارغة.
تبقى كل الإعدادات على هذا الجهاز. يتحدث YAML أثناء التعديل.
ملف docker-compose.yml المُنشأ
حول مولد Docker Compose
يُعد مولد Docker Compose أداة مجانية عبر الإنترنت تساعد المطورين على بناء ملفات docker-compose.yml بصريًا دون كتابة صياغة YAML يدويًا. سواء كنت تعدّ بيئة تطوير محلية أو حزمة إنتاج متعددة الخدمات، يسهّل هذا المولد العملية بقوالب جاهزة ومحرر مرئي بسيط للخدمات والمنافذ والمجلدات ومتغيرات البيئة.
Docker Compose أداة لتعريف تطبيقات Docker متعددة الحاويات وتشغيلها. بملف إعداد YAML واحد يمكنك تنسيق قواعد البيانات وذاكرات التخزين المؤقت وخوادم الويب وخدمات التطبيق معًا. يزيل مولدنا أخطاء الصياغة ويسرّع عملية الإعداد، لتركّز على بناء تطبيقك بدلًا من تتبع مشكلات المسافات البادئة.
تدعم هذه الأداة قوالب خدمات شائعة منها PostgreSQL وMySQL وRedis وMongoDB وNginx وNode.js. ويمكنك أيضًا إنشاء خدمات مخصصة بالكامل من الصفر، وضبط تبعيات الخدمات باستخدام depends_on، وإعداد شبكات مخصصة، والاختيار من عدة إصدارات من Docker Compose تتراوح بين 3.5 و3.9.
الميزات الرئيسية
- قوالب جاهزة لخدمات PostgreSQL وMySQL وRedis وMongoDB وNginx وNode.js
- محرر مرئي لضبط المنافذ ومتغيرات البيئة وربط المجلدات
- إدارة تبعيات الخدمات عبر التوجيهات depends_on
- إعداد شبكات مخصصة مع تهيئة تلقائية لمشغّل bridge
- اكتشاف المجلدات المسماة وتعريفها تلقائيًا
- عدة خيارات لسياسة إعادة التشغيل، منها always وunless-stopped وon-failure
- محدد إصدار Docker Compose يدعم الإصدارات من 3.5 إلى 3.9
- نسخ إلى الحافظة بنقرة واحدة أو تنزيل كملف docker-compose.yml
- معاينة YAML فورية تتحدث أثناء ضبط الخدمات
- إمكانية إضافة عدد غير محدود من الخدمات المخصصة بقوالب فارغة
كيفية استخدام مولد Docker Compose
- اختر قالبًا: انقر على أحد أزرار الإضافة السريعة (PostgreSQL أو MySQL أو Redis أو MongoDB أو Nginx أو Node.js) لإضافة خدمة مهيأة مسبقًا، أو انقر على «خدمة فارغة» للبدء من الصفر.
- اضبط الخدمة: وسّع بطاقة الخدمة وعدّل اسم الخدمة وصورة Docker واسم الحاوية والمنافذ ومتغيرات البيئة والمجلدات وسياسة إعادة التشغيل.
- حدد التبعيات: إذا كانت لديك عدة خدمات، فاستخدم خانات «يعتمد على» لتحديد ترتيب التشغيل بين الخدمات.
- أضف الشبكات: أدخل أسماء الشبكات مفصولة بفواصل لتجميع الخدمات في شبكات Docker معزولة.
- عاين وصدّر: راجع YAML الناتج في لوحة المعاينة المباشرة، ثم انسخه إلى الحافظة أو نزّله كملف docker-compose.yml.
- انشر حزمتك: ضع الملف في جذر مشروعك ونفّذ docker compose up -d لتشغيل جميع الخدمات.
حالات الاستخدام
- بيئات التطوير المحلية: شغّل قواعد البيانات وذاكرات التخزين المؤقت والخدمات بأمر واحد بدلًا من تثبيت كل اعتمادية يدويًا.
- بنية الخدمات المصغّرة: عرّف عدة خدمات مترابطة ونسّقها مع إعداد مناسب للشبكات وإدارة التبعيات.
- مسارات CI/CD: أنشئ ملفات docker-compose متسقة لتشغيل اختبارات التكامل في مسارات البناء الآلية.
- النماذج الأولية والعروض التوضيحية: أعدّ بسرعة تطبيقات متكاملة بخدمات خلفية وقواعد بيانات وخوادم وكيلة عكسية للعروض.
- تأهيل أعضاء الفريق: شارك ملف docker-compose.yml موحدًا ليتمكن المطورون الجدد من إعداد بيئتهم في دقائق.
- إدارة قواعد البيانات: اضبط نسخ PostgreSQL أو MySQL أو MongoDB أو Redis مع مجلدات دائمة لتخزين البيانات محليًا.
- إعداد خادم وكيل عكسي: اضبط Nginx كخادم وكيل عكسي أمام خدمات تطبيقك مع تعيين صحيح للمنافذ.
- تعلّم Docker: جرّب صياغة Docker Compose وإعداداته عبر واجهة مرئية تفاعلية.
الأسئلة الشائعة
هل هذه الأداة مجانية؟
نعم، مولد Docker Compose مجاني تمامًا. لا توجد حدود للاستخدام ولا اشتراط للتسجيل ولا ميزات مدفوعة مقفلة خلف جدار دفع.
هل بياناتي آمنة؟
بالتأكيد. يُنشأ كل الإعداد بالكامل داخل متصفحك. لا تُرسل أي بيانات إلى أي خادم، ولا يُخزَّن أو يُسجَّل أي شيء. تبقى أسماء خدماتك ومتغيرات البيئة وبقية الإعدادات خاصة تمامًا.
أي إصدار من Docker Compose يجب أن أستخدم؟
يتبع Docker Compose الحديث مواصفات Compose ويتجاهل حقل version في المستوى الأعلى. استخدم الصيغة الحالية بدون version في مشاريع Compose الجديدة، واختر 3.5-3.9 عند التصدير لجهة أقدم تتوقع هذا الحقل.
هل يمكنني إضافة خدمات مخصصة غير موجودة في القوالب؟
نعم. انقر على زر «خدمة فارغة» لإنشاء خدمة خالية، ثم أدخل يدويًا اسم الصورة والمنافذ ومتغيرات البيئة وبقية خيارات الإعداد لأي صورة Docker متاحة على Docker Hub أو سجلك الخاص.
ما الفرق بين المجلدات المسماة وربط المجلدات (bind mounts)؟
تُدار المجلدات المسماة (مثل postgres_data) بواسطة Docker وتحتفظ بالبيانات عبر عمليات إعادة تشغيل الحاويات. أما ربط المجلدات (يبدأ بـ ./ أو /) فيربط دليلًا محددًا على المضيف بالحاوية. يوصى بالمجلدات المسماة لتخزين قواعد البيانات، بينما يفيد ربط المجلدات في مشاركة الشيفرة المصدرية أثناء التطوير.
كيف أتعامل مع متغيرات البيئة الحساسة؟
في بيئة الإنتاج، تجنب كتابة الأسرار مباشرة في ملف docker-compose.yml. استخدم بدلًا من ذلك ملف .env بجوار ملف compose، أو استخدم Docker secrets لعمليات نشر swarm. الملف الناتج نقطة بداية ينبغي أن تخصصها بإدارة مناسبة للأسرار.
نصائح وأفضل الممارسات
- استخدم مجلدات مسماة لقواعد البيانات: تحتفظ المجلدات المسماة بالبيانات عند إعادة بناء الحاويات، مما يمنع فقدانها عند إعادة إنشائها.
- ثبّت إصدارات الصور: حدد دائمًا وسوم الصور بدقة (مثل postgres:16-alpine) بدلًا من استخدام latest لضمان إمكانية إعادة البناء بالنتيجة نفسها.
- استفد من depends_on: عرّف تبعيات الخدمات لتبدأ الحاويات بالترتيب الصحيح، وأضف أيضًا healthchecks للتحقق الفعلي من الجاهزية.
- احفظ الأسرار في ملفات .env: خزّن القيم الحساسة مثل كلمات المرور ومفاتيح API في ملف .env وأضفه إلى .gitignore لمنع إيداعه بالخطأ.
- استخدم شبكات مخصصة: اعزل مجموعات الخدمات في شبكات منفصلة لأمان أفضل ولمنع الاتصال غير المقصود بين الخدمات.
- اختر سياسة إعادة التشغيل المناسبة: استخدم «unless-stopped» للخدمات التي ينبغي أن تستمر بعد إعادة تشغيل المضيف، و«on-failure» للخدمات التي لا ينبغي أن تُعاد إلا بعد الأعطال.