هل يعمل تطبيقك على جهازك دون مشكلات، لكنه يتعثر في كل مرة تنشره فيها؟ سأجهّز تطبيقك باستخدام Docker وأربطه بخط أتمتة (CI/CD) على GitHub Actions، فيُختبر كل تعديل تجريه ويُبنى تلقائياً دون خطوات يدوية، وتنتهي مشكلة "يعمل على جهازي فقط".
أعمل في مجال DevOps على نشر التطبيقات وتشغيلها، وأكتب الإعدادات بشكل منظم وموثّق ليسهل عليك فهمها والبناء عليها بعد التسليم.
هذه الخدمة مناسبة لك إذا:
- لديك تطبيق (Django أو Node.js أو React أو غيرها) وتريد تشغيله باستخدام Docker
- تبني تطبيقك وتنشره يدوياً وتريد أتمتة العملية
- تحتاج إلى ملفات منظمة وواضحة يمكنك تسليمها لفريقك
تعتمد الخدمة على GitHub Actions حصراً.
ملف Dockerfile للواجهة الأمامية وآخر للخلفية (ببناء متعدد المراحل متى سمحت لغة التطبيق بذلك)، مع ملف .dockerignore
ملف واحد يشغّل التطبيق كاملاً (الواجهة الأمامية والخلفية وحتى خدمتين مساعدتين، مثل قاعدة بيانات وRedis) بأمر واحد
ملف YAML واحد داخل المجلد .github/workflows يتضمن ثلاث مراحل: الاختبار، وبناء صورة للواجهة الأمامية وأخرى للخلفية، ورفعهما إلى Docker Hub أو GitHub Container Registry عند كل رفع للشيفرة
قائمة بأسماء متغيرات البيئة المطلوبة فقط، دون أي قيم سرية
ملف من صفحة إلى صفحتين يشرح خطوات التشغيل المحلي، وكيفية تشغيل خط الأتمتة، وكيفية إضافة المفاتيح السرية (Secrets) في GitHub
رسالة أو مكالمة قصيرة أوضح فيها طريقة الاستخدام وأجيب عن أسئلتك
تطبيق متكامل واحد يشمل الواجهة الأمامية والخلفية معاً
حتى خدمتين (مثل PostgreSQL وRedis)
حتى 4 (الواجهة الأمامية، والخلفية، وحتى خدمتين مساعدتين)
خط واحد على GitHub Actions يبني صورتي الواجهة الأمامية والخلفية ويرفعهما
بيئة واحدة (دون فصل بيئة تجريبية عن بيئة الإنتاج)
GitHub فقط (مستودع واحد يضم الواجهتين، أو مستودعان عند الحاجة)
أسلّم العمل على شكل طلب دمج (Pull Request) على مستودعك في GitHub، أو ملف مضغوط (ZIP) إن فضّلت ذلك.
أنواع الملفات: Dockerfile، وdocker-compose.yml، و.dockerignore، و.env.example، وملف خط الأتمتة بصيغة YAML، وملف README بصيغة Markdown.
- تعديل شيفرة التطبيق أو إصلاح أخطائه
- النشر على خادم أو إنشاء الخوادم وإدارتها
- إعداد Kubernetes أو أنظمة المراقبة
- أدوات الأتمتة غير GitHub Actions
- أكثر من تطبيق متكامل واحد، وتُحتسب أي خدمات مصغّرة إضافية ضمن الخدمات المساعدة (الحد الأقصى خدمتان)
- إذا لم يتضمن تطبيقك اختبارات، فتعمل مرحلة الاختبار كفحص للبناء