Koder
Инфраструктура

Docker Compose в production: 7 правил, которые сэкономят вам выходные

03 января 2025·9 мин·
СН
Сергей Н.

Бытует мнение, что 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

Поделиться: