Repository navigation
[Task] Создание Core-пакета Docker для развертывания всей инфраструктуры в одну команду #8
Copy link
Copy link
Open
0 / 30 of 3 issues completedOpen
0 / 30 of 3 issues completed
Copy link
Labels
devopsЗадачи, связанные с автоматизацией жизненного цикла ПОЗадачи, связанные с автоматизацией жизненного цикла ПОdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestinfrastructureЗадачи по управлению железом или виртуальными ресурсамиЗадачи по управлению железом или виртуальными ресурсами
Description
Контекст
С усложнением архитектуры (Backend, PostgreSQL, Redis, Clickhouse, Analytics-service, Grafana, Loki) процесс локального запуска и развертывания на стейджинг становится трудоемким. Необходимо подготовить унифицированный "Core-пакет" конфигураций Docker, который позволит поднять весь стек технологий одной командой docker-compose up. Это обеспечит идентичность сред разработки и продакшена, а также ускорит онбординг новых разработчиков.
Технические требования
- Локация логики: Корневая директория проекта
/docker,docker-compose.yml,Makefile. - Инструменты: Docker, Docker Compose V2, Docker Swarm/K8s (опционально).
- Логика работы:
- Организовать структуру
docker-compose.ymlс использованием профилей (profiles), чтобы можно было запускать только базовый стек или полный стек с аналитикой. - Создать кастомные
Dockerfileдля каждого внутреннего сервиса (Backend, Analytics) с использованием Multi-stage builds для оптимизации веса образов. - Настроить единую внутреннюю сеть (
bridge network) для взаимодействия сервисов. - Описать конфигурации
healthcheckдля БД и Redis, чтобы зависимые сервисы (Backend) дожидались готовности хранилищ перед запуском.
- Организовать структуру
Цель и критерии приемки (Definition of Done)
- База: Созданы файлы
docker-compose.ymlи.env.exampleсо всеми необходимыми переменными. - Функционал: Команда
docker compose up -dуспешно поднимает: API, БД, Кэш, Clickhouse и систему логирования. - Лимиты/SLA: Время полной сборки и холодного старта всех контейнеров не должно превышать 3 минут на стандартной dev-машине.
- Интеграция: Создан
Makefileс командами-алиасами (например,make setup,make up,make logs,make clean).
Важные указания
- Производительность: Использовать
.dockerignore, чтобы исключитьnode_modules, логи и временные файлы из контекста сборки. Настроить монтирование томов (volumes) для персистентности данных БД. - Ошибки: В случае падения одного из контейнеров, политика
restart: unless-stoppedдолжна обеспечивать автоматическое восстановление. - Безопасность: Секреты (пароли БД, ключи API) не должны быть жестко прописаны в compose-файле. Использовать только ссылки на переменные окружения. Настроить
non-rootпользователей внутри Docker-контейнеров для бэкенд-сервисов.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
devopsЗадачи, связанные с автоматизацией жизненного цикла ПОЗадачи, связанные с автоматизацией жизненного цикла ПОdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestinfrastructureЗадачи по управлению железом или виртуальными ресурсамиЗадачи по управлению железом или виртуальными ресурсами
Activity