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

يتضمن إعداد Docker لتطبيق ويب احتواء تطبيقك وتبعياته، مما يضمن بيئات متسقة عبر التطوير والاختبار والإنتاج. إليك دليل عام يغطي المكونات الأساسية:

Beginner

يتضمن إعداد Docker لتطبيق ويب احتواء تطبيقك وتبعياته، مما يضمن بيئات متسقة عبر التطوير والاختبار والإنتاج. إليك دليل عام يغطي المكونات الأساسية:

1. تثبيت Docker

أولاً، تأكد من تثبيت Docker على نظامك. يمكنك تنزيل Docker Desktop لنظام التشغيل الخاص بك من الموقع الرسمي لـ Docker. بالنسبة لأدوات سطر الأوامر على Linux، استخدم مدير الحزم الخاص بتوزيعتك (على سبيل المثال، sudo apt install docker.io على Ubuntu).

2. إنشاء Dockerfile

Dockerfile هو ملف نصي يحتوي على تعليمات لـ Docker لبناء صورة. يحدد البيئة والتبعيات وكيفية تشغيل تطبيقك.

مثال Dockerfile لتطبيق Node.js:

# استخدام بيئة تشغيل Node.js رسمية كصورة أساسية
FROM node:18-alpine

# تعيين دليل العمل داخل الحاوية
WORKDIR /app

# نسخ package.json و package-lock.json (أو yarn.lock)
COPY package*.json ./

# تثبيت تبعيات التطبيق
RUN npm install

# نسخ بقية كود تطبيقك
COPY . .

# كشف المنفذ الذي يستمع إليه تطبيقك
EXPOSE 3000

# تحديد الأمر لتشغيل تطبيقك
CMD [ "npm", "start" ]

شرح تعليمات Dockerfile الشائعة: * FROM <image>: يحدد الصورة الأساسية التي سيتم البناء عليها. * WORKDIR /app: يضبط دليل العمل الحالي داخل الحاوية. * COPY <src> <dest>: ينسخ الملفات والمجلدات من جهازك المضيف إلى الحاوية. * RUN <command>: ينفذ الأوامر أثناء عملية بناء الصورة (على سبيل المثال، تثبيت التبعيات). * EXPOSE <port>: يُعلم Docker أن الحاوية تستمع على هذا المنفذ في وقت التشغيل. * CMD ["executable", "param1", "param2"]: يحدد الأمر الافتراضي الذي سيتم تشغيله عند بدء تشغيل الحاوية.

3. بناء صورة Docker الخاصة بك

انتقل إلى الدليل الجذر لمشروعك (حيث يوجد Dockerfile الخاص بك) في الطرفية وقم بتشغيل أمر البناء:

docker build -t your-app-name .
  • docker build: الأمر لإنشاء صورة Docker.
  • -t your-app-name: يضع علامة على الصورة باسم (على سبيل المثال، my-nodejs-app).
  • .: يحدد سياق البناء (الدليل الحالي)، ويخبر Docker بمكان العثور على Dockerfile وملفات التطبيق.

4. تشغيل حاوية Docker الخاصة بك

بمجرد بناء الصورة، يمكنك إنشاء حاوية وتشغيلها منها.

docker run -p 80:3000 your-app-name
  • docker run: الأمر لبدء حاوية.
  • -p 80:3000: يربط المنفذ 3000 داخل الحاوية (الذي يستمع إليه تطبيقك) بالمنفذ 80 على جهازك المضيف. هذا يسمح لك بالوصول إلى تطبيقك عبر http://localhost.
  • your-app-name: اسم صورة Docker التي تريد تشغيلها.

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

5. استخدام Docker Compose للتطبيقات متعددة الخدمات

بالنسبة للتطبيقات التي تتضمن خدمات متعددة (على سبيل المثال، تطبيق ويب وقاعدة بيانات)، يعد Docker Compose لا يقدر بثمن. يستخدم ملف docker-compose.yml لتحديد وإدارة جميع الخدمات.

مثال docker-compose.yml لتطبيق Node.js متصل بقاعدة بيانات PostgreSQL:

version: '3.8' # يحدد إصدار تنسيق ملف Compose

services:
  web:
    build: . # بناء الصورة من Dockerfile في الدليل الحالي
    ports:
      - "3000:3000"
    volumes:
      - .:/app # تركيب الكود المحلي للتحديثات المباشرة (التطوير)
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydatabase
    depends_on:
      - db # التأكد من بدء تشغيل قاعدة البيانات قبل خدمة الويب
    networks:
      - app-network

  db:
    image: postgres:14-alpine # استخدام صورة PostgreSQL معدة مسبقًا
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - db_data:/var/lib/postgresql/data # الاحتفاظ ببيانات قاعدة البيانات
    networks:
      - app-network

volumes:
  db_data: # تحديد الحجم المسمى

networks:
  app-network: # تحديد شبكة مخصصة

لاستخدام Docker Compose، ضع ملف docker-compose.yml في الدليل الجذر لمشروعك وقم بتشغيل:

docker compose up -d --build
  • docker compose up: يبني الصور (إذا تم استخدام --build) ويشغل الخدمات.
  • -d: يشغل الحاويات في وضع منفصل (في الخلفية).

لإيقاف وإزالة الحاويات والشبكات والأحجام:

docker compose down

يوفر هذا الإعداد بيئة قابلة للتكرار ومعزولة لتطبيق الويب الخاص بك، مما يجعل التطوير والنشر أكثر سلاسة.