chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) #641

Merged
Light1YT merged 1 commit from chore/tradein-prod-no-uvicorn-reload into main 2026-05-29 08:32:35 +00:00

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".