4.2 KiB
Быстрый старт
Требования
- Docker и Docker Compose v2.
- Доступ к приватным исходникам всех приложений, если нужны
frontend,adminPanel,sovamedилиkiosk. - Свободные порты
80,443,5432,3000,3001,8080,9090в зависимости от запускаемого набора сервисов. - Локальный
.envв корне репозитория.
Запуск dev-окружения
Для безопасной локальной разработки используйте отдельный local-контур. Он не читает корневой .env, не использует продовые домены и поднимает отдельные контейнеры:
make local-up
Локальные адреса:
- backend:
http://localhost:8081; - cabinet:
http://localhost:8082; - PostgreSQL:
localhost:15432; - Bitrix MySQL mock:
localhost:13306; - Redis:
localhost:16379.
Остановка:
make local-down
Остановка с удалением локальных volumes:
make local-clean
Повторное наполнение локальных БД тестовыми данными:
make local-seed
Сборка ассетов cabinet. Нужна, если http://localhost:8082/login отдает 500 с ошибкой про public/build/entrypoints.json:
make local-assets
Проверка, что локальный контур работает:
make local-smoke
Исторические команды ниже используют общий корневой .env. Не запускайте их для локальной разработки, если есть риск обращения к внешним окружениям.
Из корня репозитория:
make dev
Команда собирает и запускает:
- сети из
environments/docker-compose.networks.yml; - PostgreSQL и Redis из
environments/docker-compose.dbs.yml; - nginx, PHP-FPM и Next.js из
environments/docker-compose.apps.yml; - Node.js helper-контейнер из
environments/docker-compose.dev.yml.
Фактически make dev вызывает docker compose с COMPOSE_PROJECT_ENV=dev и COMPOSE_NODE_ENV=development.
Запуск полного набора
make up
Этот сценарий использует production-переменные окружения и дополнительно подключает мониторинг из environments/docker-compose.monitoring.yml.
Остановка
make down
Полная остановка с удалением volumes:
make clean
Полная очистка Docker на машине:
make prune
Команды внутри контейнеров
Установка PHP-зависимостей backend:
docker exec -it php84 composer install
Установка PHP-зависимостей cabinet:
docker exec -it php82 composer install
Установка и сборка frontend-ассетов cabinet:
docker exec -it php82 yarn install
docker exec -it php82 yarn dev
Миграции backend:
docker exec -it php84 php bin/console doctrine:migrations:migrate
Миграции cabinet:
docker exec -it php82 php bin/console doctrine:migrations:migrate
Локальные домены
nginx-конфиги ожидают домены вроде:
api.sovamed.ru->apps/backend/public;cabinet.sovamed.ru->apps/cabinet/public;dev.sovamed.ru,dev.wmtmed.ru,adm.sovamed.ruи другие домены для отсутствующих сейчас приложений.
Для локальной разработки обычно нужно добавить домены в /etc/hosts на 127.0.0.1 и иметь dev-сертификаты в infrastructure/nginx/certs.
Проверка состояния
docker compose ps
docker logs nginx --tail=100
docker logs php84 --tail=100
docker logs php82 --tail=100