DevOps نشر في 2024-01-20 * 6 دقائق قراءة

Docker للتطوير المحلي: بدء المشاريع في دقائق

تعلم كيف يبسط Docker التطوير المحلي. اكتشف كيفية بدء مشاريع PHP و JavaScript و full-stack في دقائق مع بيئات قابلة للتكرار.

بالنسبة للعديد من المطورين، كان إعداد بيئة التطوير المحلية يعني تثبيت تبعيات لا حصر لها، وتكوين قواعد البيانات، وقضاء ساعات في استكشاف أخطاء عدم تطابق الإصدارات. مع Docker، انتهت تلك الأيام.

في هذه المقالة، سأشارك كيف غير Docker الطريقة التي أعمل بها أنا وفريقي. من دمج المطورين الجدد في دقائق إلى الحفاظ على المشاريع متسقة عبر الآلات المختلفة، أصبح Docker أداة أساسية في سير عملنا اليومي.

لماذا يهم التطوير المحلي

قبل الغوص في Docker، دعنا نفهم لماذا بيئات التطوير المحلية حرجة جداً:

  • السرعة: يحتاج المطورون إلى البدء في البرمجة بسرعة دون القتال مع مشاكل الإعداد.
  • الاتساق: خطوط أنابيب CI/CD تستخدم نفس Dockerfiles.
  • العزل: يمكن لكل مشروع أن يكون له تبعياته الخاصة دون تضارب.

Docker يحل المشاكل الثلاثة بأناقة.

Docker للتطوير المحلي: الفوائد الأساسية

التكامل السريع

عندما ينضم مطور جديد، بدلاً من إرسال مستند إعداد من 5 صفحات، نشارك ملف docker-compose.yml واحد. بعد أمر واحد، بيئتهم تعمل.

docker-compose up -d

في دقائق، لديهم PHP و MySQL و Node.js و Redis، أو أي خدمات نستخدمها - كلها مكونة تماماً كما في الإنتاج.

بيئات قابلة للتكرار

سمعنا جميعاً "لكنه يعمل على جهازي". Docker يلغي ذلك. الحاويات تضمن نفس السلوك في كل مكان. سواء كنت أشغل Ubuntu، أو زميل على Windows، أو CI/CD في السحابة، البيئة متطابقة.

العزل المدمج

كل مشروع يحصل على مكدسه المعبأ في حاوية. لا مزيد من التضارب بين إصدارات PHP المختلفة أو تبعيات Node.js غير المتطابقة. يمكنني التبديل بين المشاريع بسلاسة دون كسر أي شيء.

مثال: بدء مشروع PHP + JavaScript

إليك ملف docker-compose.yml بسيط يبدأ API PHP/Laravel مع واجهة Node.js:

version: "3.9"

services:
  app:
    build: ./backend
    volumes:
      - ./backend:/var/www/html
    ports:
      - "8000:80"

  node:
    build: ./frontend
    volumes:
      - ./frontend:/usr/src/app
    ports:
      - "3000:3000"
    command: ["npm", "run", "dev"]

  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: app_db
    ports:
      - "3306:3306"

بأمر واحد، لدينا:

  • خادم PHP يعمل على http://localhost:8000.
  • واجهة Node.js على http://localhost:3000.
  • قاعدة بيانات MySQL جاهزة للاستخدام.

لماذا يحب فريقي ذلك

  • إعادة التحميل الساخنة: نربط أحجام التخزين حتى تتحدث التغييرات فوراً.
  • التصحيح: VS Code يتكامل مباشرة مع حاويات Docker.
  • الاتساق: خطوط أنابيب CI/CD تستخدم نفس Dockerfiles.

عندما يسأل شخص "كم من الوقت سيستغرق إعداد المشروع؟"، إجابتي هي: حوالي 5 دقائق.

أفضل الممارسات للتطوير المحلي بـ Docker

  • استخدم أحجام Docker للتخزين المستمر.
  • أضف ملف Makefile مع اختصارات (make start، make stop).
  • احتفظ بصورك خفيفة (إصدارات Alpine عندما يكون ذلك ممكناً).
  • وثق ملف docker-compose.yml الخاص بك حتى يفهم الوافدون الجدد الخدمات.

الخلاصة

جعل Docker التطوير المحلي ليس فقط أسهل بل ممتعاً. بدلاً من إضاعة ساعات في تصحيح الإعدادات، نقضي وقتنا في البرمجة والاختبار وبناء الميزات الحقيقية.

إذا كنت لا تزال تعتمد على الإعدادات اليدوية أو الآلات الافتراضية الثقيلة، جرب Docker - لن تنظر إلى الوراء أبداً.

مشاركة المقال