fix(metrics): гасим crash-loop tg-relay через профиль relay #3492

Merged
lekss361 merged 2 commits from fix/3471-relay-secret-wiring into main 2026-09-12 11:48:41 +00:00

2 commits

Author SHA1 Message Date
bot-backend
4b74356c60 fix(metrics): force-recreate alert-ack/tg-relay после up -d — код монтируется с хоста
All checks were successful
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 15s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 12s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
up -d сравнивает описание сервиса, не содержимое бинд-маунта. alert-ack и
tg-relay получают app.py именно бинд-маунтом (не сборкой образа), поэтому
правка файла не пересоздаёт уже работающий контейнер — он продолжает
исполнять старый код в памяти интерпретатора.

Подтверждено на проде 12.09.2026: PR #3490 (фикс alert-ack) слился, файл на
диске обновился (git reset --hard), а gendesign-alert-ack, запущенный 25
минут назад, отвечал по старой логике. Помог только ручной docker restart.

force-recreate для обоих сервисов сделан условным по PROFILES (case
",$PROFILES,"), чтобы не падать на несуществующем контейнере, когда
профиль alerts/relay в этом прогоне не включён.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
2026-09-12 14:47:17 +03:00
bot-backend
347342bb5c fix(metrics): гасим crash-loop tg-relay пустым секретом через профиль relay
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 13s
CI / openapi-codegen-check (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
PR #3487 добавил сервис tg-relay без profiles: контейнер поднимался
всегда и падал в SystemExit на пустом TG_RELAY_SECRET (на проде
подтверждён Restarting в бесконечном цикле).

- deploy-metrics.yml: TG_RELAY_SECRET прокинут в ssh-action по образцу
  ALERT_ACK_GLITCHTIP_SECRET; профиль relay включается независимо от
  alerts, только когда секрет непуст; ::warning на пустом секрете.
  Сравнение PROFILES с "alerts" переведено на case, иначе комбинация
  "alerts,relay" сломала бы прежнюю точную строковую проверку.
- docker-compose.metrics.yml: tg-relay получил profiles: ["relay"].
- tradein-mvp/docker-compose.prod.yml: комментарий у tgbot — deploy-tradein.yml
  секреты приложения в CI не инжектит, TELEGRAM_RELAY_BASE_URL и
  TELEGRAM_RELAY_SECRET на продуктовом хосте заводятся так же, как
  прочие TELEGRAM_* — строкой в user-managed runtime-файле окружения
  backend на хосте, без правок workflow (существующий механизм этого
  файла, см. README-АДМИНУ.md).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
2026-09-12 14:44:56 +03:00