From 097c69e6d7c1272d39644624d5a8384a88f812b1 Mon Sep 17 00:00:00 2001 From: Light1YT Date: Fri, 29 May 2026 08:32:34 +0000 Subject: [PATCH] chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) (#641) --- tradein-mvp/docker-compose.prod.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tradein-mvp/docker-compose.prod.yml b/tradein-mvp/docker-compose.prod.yml index f019e401..5a6e1905 100644 --- a/tradein-mvp/docker-compose.prod.yml +++ b/tradein-mvp/docker-compose.prod.yml @@ -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".