قم بإنشاء ملفات docker-compose.yml لتطبيقات متعددة الخدمات مع الخدمات، ووحدات التخزين، والشبكات، ومتغيرات البيئة.
services:
app:
image: myapp:latest
ports:
- "3000:3000"
environment:
- NODE_ENV=production
networks:
- app-network
restart: unless-stopped
database:
image: postgres:16
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=secret
volumes:
- db-data:/var/lib/postgresql/data
depends_on:
- app
networks:
- app-network
restart: unless-stopped
networks:
app-network:
driver: bridge
volumes:
db-data:يُعرّف Docker Compose تطبيقات متعددة الحاويات كملف YAML واحد. تُحدد كل خدمة صورة أو سياق بناء، ومنافذ مكشوفة، ومتغيرات بيئية، ووحدات تخزين مُثبتة، وعضوية الشبكة. يتولى Compose تشغيل جميع الخدمات بالترتيب الصحيح باستخدام أمر <code>docker compose up</code> واحد.
أضف صفًا واحدًا لكل خدمة. حدد اسم الصورة، والمنافذ (بتنسيق المضيف:الحاوية)، ومتغيرات البيئة، ووحدات التخزين المُثبّتة. تُعرَّف وحدات التخزين المُسماة (بدون شرطة مائلة في البداية) تلقائيًا في قسم وحدات التخزين الرئيسية. أما وحدات التخزين المُثبّتة (التي تبدأ بـ / أو ./) فتُمرر كما هي.
يستهدف هذا المُولِّد الإصدار الثاني من Compose (وهو الإصدار الافتراضي منذ Docker Desktop 3.x وDocker Engine 23.x). <code>version:</code> تم حذف المفتاح الرئيسي عمدًا. يمكن التعبير عن تبعيات الخدمة باستخدام <code>depends_on</code> - أضفه إلى حقل المنافذ كمفتاح YAML مؤقتًا، أو عدّل الناتج مباشرةً.