53 أسطر
1.4 KiB
YAML
53 أسطر
1.4 KiB
YAML
# docker-compose.yml
|
|
# نسخة معدلة ومحسّنة للعمل على المنصات السحابية
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
# الخدمة الأولى: قاعدة البيانات PostgreSQL
|
|
postgresql:
|
|
image: postgres:16-alpine
|
|
container_name: ilibrary_db_container
|
|
restart: always
|
|
environment:
|
|
POSTGRES_DB: ilibrarydb
|
|
POSTGRES_USER: abdyousef
|
|
POSTGRES_PASSWORD: ilibrary2025!
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
networks:
|
|
- app-network
|
|
# ✅ **الجديد هنا: تحديد حدود الموارد**
|
|
# هذا يمنع قاعدة البيانات من استهلاك كل ذاكرة السيرفر
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
# الخدمة الثانية: تطبيق Next.js الخاص بك
|
|
app:
|
|
build: .
|
|
container_name: ilibrary_app_container
|
|
restart: always
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
- postgresql
|
|
environment:
|
|
DATABASE_URL: "postgresql://abdyousef:ilibrary2025!@postgresql:5432/ilibrarydb"
|
|
NEXT_PUBLIC_API_URL: "http://localhost:3000/api"
|
|
networks:
|
|
- app-network
|
|
# ✅ **الجديد هنا: تحديد حدود الموارد للتطبيق أيضاً**
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
networks:
|
|
app-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
postgres_data:
|