fix(tradein): гарантировать lxml в backend-образе — bust кэша uv sync + assert import #2061

Merged
lekss361 merged 1 commit from fix/tradein-dockerfile-lxml into main 2026-06-28 15:16:04 +00:00
Owner

Проблема

Образ tradein-backend задеплоился без lxml (docker exec tradein-backend python -c "import lxml"ModuleNotFoundError), хотя lxml>=5.0.0 корректно в [project].dependencies (PR #2059). Причина — слой RUN uv sync переиспользовал устаревший build-cache при rapid-merge PR3+PR4. Из-за этого ГАР-loader (app.tasks.gar_flats_load) не запускается, а pip/uv в рантайм-образе нет → починить «на месте» нельзя.

Фикс

В builder-стейдже меняю RUN uv sync --no-devuv sync --no-dev && /app/.venv/bin/python -c "import lxml; ...":

  • изменение команды детерминированно инвалидирует кэш этого слоя → uv sync гарантированно перезапустится и поставит lxml;
  • import lxml — build-time assert: если зависимость снова пропадёт, сборка упадёт громко (в CI), а не молча в рантайме.

Чисто инфра-фикс, без изменения кода/поведения приложения.

Test plan

  • Деплой пересобирает backend → docker exec tradein-backend python -c "import lxml; print(lxml.__version__)" отдаёт версию (проверю после merge).
  • python -m app.tasks.gar_flats_load --help запускается без ModuleNotFoundError.
## Проблема Образ `tradein-backend` задеплоился **без `lxml`** (`docker exec tradein-backend python -c "import lxml"` → `ModuleNotFoundError`), хотя `lxml>=5.0.0` корректно в `[project].dependencies` (PR #2059). Причина — слой `RUN uv sync` переиспользовал устаревший build-cache при rapid-merge PR3+PR4. Из-за этого ГАР-loader (`app.tasks.gar_flats_load`) не запускается, а `pip`/`uv` в рантайм-образе нет → починить «на месте» нельзя. ## Фикс В builder-стейдже меняю `RUN uv sync --no-dev` → `uv sync --no-dev && /app/.venv/bin/python -c "import lxml; ..."`: - изменение команды **детерминированно инвалидирует** кэш этого слоя → `uv sync` гарантированно перезапустится и поставит `lxml`; - `import lxml` — build-time **assert**: если зависимость снова пропадёт, сборка упадёт громко (в CI), а не молча в рантайме. Чисто инфра-фикс, без изменения кода/поведения приложения. ## Test plan - [ ] Деплой пересобирает backend → `docker exec tradein-backend python -c "import lxml; print(lxml.__version__)"` отдаёт версию (проверю после merge). - [ ] `python -m app.tasks.gar_flats_load --help` запускается без ModuleNotFoundError.
lekss361 added 1 commit 2026-06-28 15:15:27 +00:00
fix(tradein): гарантировать lxml в backend-образе — bust кэша uv sync + assert import
All checks were successful
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
0f0212a95c
Образ tradein-backend задеплоился без lxml (слой `uv sync` переиспользовал
устаревший build-cache при rapid-merge PR3+PR4), из-за чего ГАР-loader падает
с ModuleNotFoundError. lxml корректно в [project].dependencies — проблема в кэше.
Меняю команду RUN (детерминированно инвалидирует слой) + `import lxml` как
build-time assert: если зависимость снова пропадёт — сборка упадёт громко.
lekss361 merged commit 83ae6f8a47 into main 2026-06-28 15:16:04 +00:00
lekss361 deleted branch fix/tradein-dockerfile-lxml 2026-06-28 15:16:05 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2061
No description provided.