3.4 KiB
Окружение
Безопасный локальный контур
Для локальной разработки добавлен отдельный контур, который не использует продовые доступы:
- compose-файл:
environments/docker-compose.local.yml; - переменные Docker Compose:
local/.env.local; - пример переменных:
local/.env.local.example; - локальный backend env:
apps/backend/.envиapps/backend/.env.local; - локальный cabinet env:
apps/cabinet/.envиapps/cabinet/.env.local; - seed PostgreSQL:
local/postgres/init; - seed локального Bitrix MySQL:
local/mysql-bitrix/init.
Все подключения направлены только на Docker-сервисы postgres-local, bitrix-mysql-local и redis-local.
make local-up
make local-seed
make local-down
Локальные базы:
sova_backend_local- основная БД backend;sova_cabinet_local- основная БД cabinet;sova_bitrix_local- mock БД Bitrix на MySQL.
Внешние интеграции в local env заменены mock URL вроде http://mock-mis.local; настоящие продовые URL и токены не используются.
Корневой .env
Корневой .env подключается в Makefile и передается в Docker Compose через --env-file. В нем должны быть значения для:
ROOT_DIR- абсолютный путь проекта на сервере для cron-скриптов;PG_DB,PG_USER,PG_PASS- параметры PostgreSQL;REDIS_PASSWORD- пароль Redis;GF_SECURITY_ADMIN_USER,GF_SECURITY_ADMIN_PASSWORD- учетные данные Grafana.
Не храните реальные значения в документации. Для новых разработчиков лучше завести .env.example без секретов.
Переменные приложений
Внутри apps/backend и apps/cabinet есть собственные .env, .env.dev, .env.test. Они управляют Symfony-приложениями: подключениями к БД, внешними API, mailer, Redis, JWT и режимом окружения.
Backend использует несколько Doctrine connections:
default- основная PostgreSQL-база;mysql- Bitrix MySQL;cabinet- PostgreSQL-база старого кабинета.
Cabinet использует:
default- PostgreSQL;bitrix- Bitrix MySQL.
Режимы Compose
COMPOSE_PROJECT_ENV влияет на монтирование nginx/PHP-конфигов:
dev- берутся файлы изinfrastructure/nginx/devиphp-ini-dev.ini;prod- берутся файлы изinfrastructure/nginx/prodиphp-ini-prod.ini.
COMPOSE_NODE_ENV выставляется в Makefile, но в docker-compose.dev.yml сейчас явно задан NODE_ENV=development.
Сертификаты
nginx слушает 80 и 443; HTTPS-конфиги используют файлы из infrastructure/nginx/certs. Для разработки есть цель:
make copy-certs
Она копирует сертификаты с удаленного хоста, поэтому требует доступ к соответствующему SSH alias.