Бытует мнение, что Docker Compose подходит только для локальной разработки, а для продакшена нужен Kubernetes. Но для 90% проектов малого и среднего бизнеса Kubernetes — это оверхед по бюджету и сложности поддержки. Правильно настроенный Docker Compose отлично работает на одном-двух серверах.
Семь золотых правил продакшена
- Всегда ограничивайте CPU и RAM для контейнеров (чтобы утечка памяти в одном сервисе не положила весь сервер)
- Настраивайте правильные политики перезапуска (restart: unless-stopped)
- Выносите секреты и пароли в переменные окружения (.env)
- Используйте именованные volumes для хранения данных и баз данных
- Настройте внешнюю ротацию логов (иначе дисковое пространство быстро закончится)
- Внедрите healthcheck для автоматического перезапуска зависших контейнеров
- Делайте регулярный дамп баз данных на независимое хранилище
Шаблон безопасного compose-файла
docker-compose.yml
version: '3.8'
services:
web:
image: node:20-alpine
restart: unless-stopped
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
environment:
- NODE_ENV=production
volumes:
- uploads:/app/uploadsПоделиться: