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 и сетей.