Подробнее про Docker
Проект полностью интегрирован в docker
. Для локальной разработки используется docker-compose
.
Проект содержит следующие файлы docker-compose:
- docker-compose.yml - главный файл;
- docker-compose.dev.yml - содержит только изменения относительно главного файла, необходимые для режима разработки;
- docker-compose.test.yml - содержит только изменения для запуска тестов;
Файл docker-compose.yml
Файл docker-compose.yml
- это главный compose-файл. Любая команда docker-compose
должна использовать
этот файл в качестве первого аргумента.
Файл содержит все сервисы проекта (кроме тестовых) и основные метаданные для каждого сервиса,
такие как build
, env_file
, depends_on
и т.п.
Файл docker-compose.yml
не должен содержать портов, смотрящих наружу для сервисов баз данных.
Профили
Все сервисы в файле docker-compose.yml
сгруппированы по профилям. Профили необходимы для возможности
запуска только определенной группы сервисов.
Главный профиль - default
, все сервисы должны иметь этот профиль.
Существуют следующие профили:
* default
* db
* tests
Например, к профилю db
относятся только сервисы postgres
, redis
и jaeger
и больше ничего.
Запустить исключительно сервисы профайла db
можно так:
make run-db
Файл docker-compose.dev.yml
Файл docker-compose.dev.yml
используется для запуска проекта в режиме разработки. Здесь добавляются
изменения относительно docker-compose.yml
. Например, здесь можно примонтировать тома для папок приложения
и указать порты, смотрящие наружу, чтобы облегчить отладку.
Файл docker-compose.test.yml
Файл docker-compose.test.yml
содержит сервисы только для тестов. Этот файл используется для запуска
тестов в докере.