150 lines
4.2 KiB
Markdown
150 lines
4.2 KiB
Markdown
# Быстрый старт
|
||
|
||
## Требования
|
||
|
||
- Docker и Docker Compose v2.
|
||
- Доступ к приватным исходникам всех приложений, если нужны `frontend`, `adminPanel`, `sovamed` или `kiosk`.
|
||
- Свободные порты `80`, `443`, `5432`, `3000`, `3001`, `8080`, `9090` в зависимости от запускаемого набора сервисов.
|
||
- Локальный `.env` в корне репозитория.
|
||
|
||
## Запуск dev-окружения
|
||
|
||
Для безопасной локальной разработки используйте отдельный local-контур. Он не читает корневой `.env`, не использует продовые домены и поднимает отдельные контейнеры:
|
||
|
||
```bash
|
||
make local-up
|
||
```
|
||
|
||
Локальные адреса:
|
||
|
||
- backend: `http://localhost:8081`;
|
||
- cabinet: `http://localhost:8082`;
|
||
- PostgreSQL: `localhost:15432`;
|
||
- Bitrix MySQL mock: `localhost:13306`;
|
||
- Redis: `localhost:16379`.
|
||
|
||
Остановка:
|
||
|
||
```bash
|
||
make local-down
|
||
```
|
||
|
||
Остановка с удалением локальных volumes:
|
||
|
||
```bash
|
||
make local-clean
|
||
```
|
||
|
||
Повторное наполнение локальных БД тестовыми данными:
|
||
|
||
```bash
|
||
make local-seed
|
||
```
|
||
|
||
Сборка ассетов cabinet. Нужна, если `http://localhost:8082/login` отдает `500` с ошибкой про `public/build/entrypoints.json`:
|
||
|
||
```bash
|
||
make local-assets
|
||
```
|
||
|
||
Проверка, что локальный контур работает:
|
||
|
||
```bash
|
||
make local-smoke
|
||
```
|
||
|
||
Исторические команды ниже используют общий корневой `.env`. Не запускайте их для локальной разработки, если есть риск обращения к внешним окружениям.
|
||
|
||
Из корня репозитория:
|
||
|
||
```bash
|
||
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`.
|
||
|
||
## Запуск полного набора
|
||
|
||
```bash
|
||
make up
|
||
```
|
||
|
||
Этот сценарий использует production-переменные окружения и дополнительно подключает мониторинг из `environments/docker-compose.monitoring.yml`.
|
||
|
||
## Остановка
|
||
|
||
```bash
|
||
make down
|
||
```
|
||
|
||
Полная остановка с удалением volumes:
|
||
|
||
```bash
|
||
make clean
|
||
```
|
||
|
||
Полная очистка Docker на машине:
|
||
|
||
```bash
|
||
make prune
|
||
```
|
||
|
||
## Команды внутри контейнеров
|
||
|
||
Установка PHP-зависимостей backend:
|
||
|
||
```bash
|
||
docker exec -it php84 composer install
|
||
```
|
||
|
||
Установка PHP-зависимостей cabinet:
|
||
|
||
```bash
|
||
docker exec -it php82 composer install
|
||
```
|
||
|
||
Установка и сборка frontend-ассетов cabinet:
|
||
|
||
```bash
|
||
docker exec -it php82 yarn install
|
||
docker exec -it php82 yarn dev
|
||
```
|
||
|
||
Миграции backend:
|
||
|
||
```bash
|
||
docker exec -it php84 php bin/console doctrine:migrations:migrate
|
||
```
|
||
|
||
Миграции cabinet:
|
||
|
||
```bash
|
||
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`.
|
||
|
||
## Проверка состояния
|
||
|
||
```bash
|
||
docker compose ps
|
||
docker logs nginx --tail=100
|
||
docker logs php84 --tail=100
|
||
docker logs php82 --tail=100
|
||
```
|