مقدمه
Docker Compose برای توسعه محلی عالی است، اما اجرای آن در production نیازمند ملاحظات اضافی است: high availability، مدیریت لاگ، مدیریت secrets، health check و restart policy. این راهنما نحوه پیکربندی Docker Compose برای بارهای کاری production را آموزش میدهد.
فایلهای چندگانه Compose
BASH
# ترکیب فایلهای base و production
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -dمدیریت Secrets
BASH
# هرگز secrets را در docker-compose.yml قرار ندهید
# ایجاد فایل .env (هرگز commit نکنید!)
cat > /opt/app/.env << 'EOF'
DATABASE_URL=postgresql://user:pass@postgres:5432/db
REDIS_PASSWORD=StrongPass!
EOF
chmod 600 /opt/app/.envHealth Checks
YAML
services:
app:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on:
postgres:
condition: service_healthyپشتیبانگیری
BASH
# dump دیتابیس از container در حال اجرا
docker compose exec -T postgres pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB" | gzip > "backup_$(date +%Y%m%d).sql.gz"Docker Compose در production برای استقرارهای کوچک تا متوسط (یک یا چند سرور) به خوبی کار میکند. وقتی به زمانبندی چند-host، خود-ترمیمی یا مدیریت دقیق منابع نیاز دارید، به Kubernetes مهاجرت کنید.
