Docker Compose override: разделить dev и production настройки
Разделите общие сервисы и локальные настройки по нескольким Compose-файлам. Второй файл меняет или дополняет базовый, а config показывает итог перед запуском. ????? ??????????? ?????????? ???????? ?????? ??????? ? ????????? ?????? ? ??????? ?????.
Рабочий пример
# compose.yaml
services:
web:
image: example/web:1.0
ports: [\"8080:80\"]
# compose.dev.yaml
services:
web:
build: .
volumes:
- ./src:/app/src
command: npm run dev
# Сначала проверьте объединённый результат:
docker compose -f compose.yaml -f compose.dev.yaml configФайлы применяются слева направо: поздний override меняет совпадающие поля. Списки ports и volumes объединяются по своим правилам, поэтому перед up просмотрите config.
Частый вопрос
Нужно ли вручную указать override?
Compose автоматически подхватывает compose.override.yaml в каталоге проекта. Для точного контроля перечислите каждый файл через -f в нужном порядке.