في عالم تطوير البرمجيات الحديث، أصبحت الحاويات (Containers) من الأدوات الأساسية التي يعتمد عليها مطورو الـ Backend لتحقيق قابلية التشغيل، الثبات، وسهولة النشر. ومن بين أدوات الحاويات، يبرز Docker وDocker Compose كحلّين متكاملين يتيحان لك إنشاء بيئات تطوير واختبار متطابقة وقابلة للتكرار، بغض النظر عن نظام التشغيل أو البنية التحتية.في هذه المقالة، سنشرح كيف يمكنك استخدام Docker وDocker Compose لتطوير واختبار تطبيقات الـ Backend بشكل احترافي. سنغطي المفاهيم الأساسية، الفوائد، الخطوات العملية، وأفضل الممارسات.—ما هو Docker ولماذا نستخدمه؟Docker هو منصة مفتوحة المصدر تتيح لك حزم تطبيقك مع جميع الاعتمادات (dependencies) في صورة واحدة تُعرف باسم الحاوية (Container). هذه الحاوية تعمل بنفس الطريقة على أي بيئة تشغيل، سواء على جهازك أو على الخادم أو في السحابة.الفوائد الأساسية لـ Docker في تطوير الـ Backend:بيئة تشغيل موحدة: لا مزيد من عبارة “يعمل عندي فقط”.سهولة التجربة والاختبار: تشغيل قواعد بيانات، Redis، أو RabbitMQ في ثوانٍ.تحكم في الإصدارات: تحديد نسخ الأدوات والخدمات بدقة.سهولة النشر: يمكنك ترحيل نفس الحاوية من بيئة التطوير إلى الإنتاج.—ما هو Docker Compose؟Docker Compose هو أداة تُستخدم لتعريف وتشغيل تطبيقات متعددة الحاويات باستخدام ملف واحد هو docker-compose.yml.باستخدام Compose يمكنك:تشغيل أكثر من خدمة (مثل API + قاعدة بيانات) معًا.إعداد شبكات اتصال بين الحاويات بسهولة.تنفيذ أوامر مثل up وdown لتشغيل أو إيقاف النظام بالكامل.—الخطوة 1: تثبيت Docker وDocker Composeإذا لم تكن مثبتًا لهما، قم بزيارة https://docs.docker.com/get-docker لتحميل Docker Desktop، الذي يتضمن Docker Compose تلقائيًا.بعد التثبيت:docker –versiondocker compose version—الخطوة 2: إنشاء تطبيق Backend بسيطكمثال، لنفترض أنك تطور تطبيقًا باستخدام Node.js أو Python Flask. إليك مثالًا باستخدام Flask:# app.pyfrom flask import Flaskapp = Flask(__name__)@app.route(“/”)def home(): return “Hello from Docker!”—الخطوة 3: إنشاء ملف Dockerfileهذا الملف يوضح لـ Docker كيف يبني الحاوية الخاصة بالتطبيق:# DockerfileFROM python:3.10-slimWORKDIR /appCOPY requirements.txt ./RUN pip install –no-cache-dir -r requirements.txtCOPY . .CMD [“python”, “app.py”]ومحتوى requirements.txt:flask—الخطوة 4: اختبار الحاويةلبناء وتشغيل الحاوية يدويًا:docker build -t my-backend-app .docker run -p 5000:5000 my-backend-appستجد التطبيق يعمل على http://localhost:5000.—الخطوة 5: استخدام Docker Compose لإضافة قاعدة بياناتالآن لنفترض أنك تريد إضافة قاعدة بيانات PostgreSQL وتربطها مع تطبيقك. ننشئ ملفًا باسم:# docker-compose.ymlversion: “3.9”services: backend: build: . ports: – “5000:5000” depends_on: – db environment: – DB_HOST=db – DB_PORT=5432 – DB_NAME=mydb – DB_USER=postgres – DB_PASSWORD=secret db: image: postgres:15 restart: always environment: POSTGRES_DB: mydb POSTGRES_USER: postgres POSTGRES_PASSWORD: secret volumes: – pgdata:/var/lib/postgresql/datavolumes: pgdata:تشغيل النظام:docker compose up –buildالآن لديك:تطبيق Backend يعمل على المنفذ 5000قاعدة بيانات PostgreSQL متصلة به على شبكة داخلية—الخطوة 6: الاتصال بقاعدة البيانات من التطبيقباستخدام متغيرات البيئة التي حددناها في docker-compose.yml، يمكنك الاتصال من خلال كود Flask باستخدام مكتبة مثل SQLAlchemy:import osfrom flask import Flaskfrom sqlalchemy import create_engineapp = Flask(__name__)db_url = f”postgresql://{os.getenv(‘DB_USER’)}:{os.getenv(‘DB_PASSWORD’)}@{os.getenv(‘DB_HOST’)}:{os.getenv(‘DB_PORT’)}/{os.getenv(‘DB_NAME’)}”engine = create_engine(db_url)—الخطوة 7: اختبار البيئةيمكنك الآن اختبار الكود وتشغيل الأوامر داخل الحاوية:docker compose exec backend bashومن هناك، يمكنك تنفيذ أوامر مثل:python# ثم تجربة الاتصال بقاعدة البيانات من خلال SQLAlchemy—الخطوة 8: استخدام Docker في الاختبارات الآليةيمكنك تنفيذ اختباراتك داخل بيئة Docker أيضًا، مما يضمن نتائج دقيقة ومتكررة في كل مرة.مثال على دمج Pytest في Dockerfile:COPY tests/ ./tests/RUN pip install pytestCMD [“pytest”]ثم:docker build -t my-backend-test .docker run my-backend-test—الخطوة 9: تنظيف البيئةبعد الانتهاء:docker compose downلحذف البيانات الدائمة:docker volume rm <volume_name>—أفضل الممارسات عند استخدام Docker وComposeاحفظ جميع الأسرار في ملفات .env ولا تكتبها مباشرة في docker-compose.yml.استخدم ملفات Compose متعددة: مثل docker-compose.override.yml للتطوير وdocker-compose.prod.yml للإنتاج.اجعل الحاويات صغيرة وخفيفة باستخدام نسخ خفيفة مثل python:3.10-slim.استخدم Healthchecks لمراقبة جاهزية الخدمات.راقب الأداء باستخدام أدوات مثل Docker Stats أو دمج Prometheus وGrafana.—الخلاصةباستخدام Docker وDocker Compose، يمكنك إنشاء بيئة تطوير واختبار متكاملة لتطبيقات الـ Backend بسهولة وسرعة. ستوفر لك هذه الأدوات قدرة على التكرار، التشغيل في أي مكان، وعزل المكونات المختلفة. سواء كنت تبني نظامًا بسيطًا أو بنية ميكروسيرفس معقدة، فستكون Docker أداة لا غنى عنها في مسيرتك كمطور خلفية محترف.
لغات البرمجة
كيف تستخدم Docker وDocker Compose في تطوير واختبار تطبيقات Backend
- by abdo Saeid
- 17 مايو، 2025
- 0 Comments
- 1 minute read
- 92 Views
- شهر واحد ago

Leave feedback about this
يجب أنت تكون مسجل الدخول لتضيف تعليقاً.