chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) (#641)
All checks were successful
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 49s
Deploy Trade-In / build-frontend (push) Successful in 56s
Deploy Trade-In / deploy (push) Successful in 34s

This commit is contained in:
Light1YT 2026-05-29 08:32:34 +00:00
parent e4b5f14939
commit 097c69e6d7

View file

@ -36,6 +36,12 @@ services:
backend:
image: ghcr.io/lekss361/gendesign-tradein-backend:${IMAGE_TAG:-latest}
container_name: tradein-backend
# Prod: uvicorn БЕЗ --reload (Dockerfile CMD несёт --reload только для dev hot-reload,
# где app/ bind-mount'ится). В prod --reload = лишний WatchFiles-наблюдатель + риск
# reload в середине запроса. Single worker ОБЯЗАТЕЛЕН: in-app планировщик
# (app.services.scheduler, tick=60s) живёт в процессе backend — несколько uvicorn
# воркеров = дублирование scheduled-джоб (cian/rosreestr запустятся N раз). Без --workers.
command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
# .env.runtime пишется вручную на VPS (см. DEPLOY.md / scripts/README.md).
# Контейнер читает YANDEX_GEOCODER_API_KEY, COOKIE_ENCRYPTION_KEY и пр. из
# этого файла — без него backfill scripts падают с "key required".