intermediate

Docker Compose

Моделируйте локальные multi-service стеки: services, networks, volumes, env-файлы, health checks и порядок зависимостей.

Docker Compose описывает локальное или небольшое окружение: services, networks, volumes, env-файлы, health checks и зависимости запуска. Подходит для FullStack с web, API, БД, cache и workers.

					services:
  api:
    build: .
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 10s
  db:
    image: postgres:16
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]
				

`depends_on` задаёт порядок старта — не гарантирует readiness. Для реальной доступности нужны health checks, retrying clients или init-контейнеры миграций.

На интервью: compose vs production-оркестраторы, health checks vs `depends_on`, границы env-файлов и согласованность dev-стека с deploy-манифестами.

Типовые ошибки: compose как production-оркестрация; стек слишком далёк от Kubernetes или cloud deploy.

Компромисс — быстрая локальная fidelity против поддержки двух моделей окружения.

Чеклист:

  • Моделировать реальные локальные зависимости.
  • Health checks для readiness.
  • Согласованность dev и deploy.
  • Осознанный teardown volumes и сетей.