meta(tasks): deploy-pilorama reblocked — snolla fixed (eaee56f) but sharp/libvips not bundled

Redeploy from eaee56f: snolla-500 gone, home/categories 200 with SEO,
but sharp native libvips missing in Nitro .output → product listing 500.
Rolled back to 19a4a84 again (catalog works). Platform-specific, peer's
local prod-bundle couldn't catch it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
vitya
2026-06-18 22:46:05 +03:00
parent e03d5c504a
commit 3958107715

View File

@@ -821,10 +821,13 @@ Approach ратифицирован человеком (вариант A): ко
**Status:** blocked
**Where I stopped:** Build-механика РЕШЕНА: (1) консолидация сделала проект yarn-workspace → переписал Dockerfile под workspace-сборку (контекст = корень монорепы, root `yarn.lock`+`.yarnrc.yml`+манифесты всех членов, `yarn workspace nuxt-app build`); образ собрался с 1-го раза. (2) push с дома ловит traefik-499 на `.output`-слое → `docker save | ssh vds docker load` + `docker push` С VDS (локально) — образ `registry.kzntsv.site/pilonuxt:ed6b37e` в реестре. (3) Деплой стека 16 (Portainer PUT, pullImage) прошёл. **НО smoke на проде → HTTP 500.**
**Blocker:** Рантайм-регресс в snolla-пакетах из монореп-лока. `apps/web` тянет `@snollajs/content-api@^0.11.0`, который nested-депом подтягивает **`@snollajs/snolla@0.11.0`** (рядом с прямым `@snollajs/snolla@0.16.0`). content-api зовёт `SitesService.getSiteById` из 0.11.0 → `Cannot read properties of undefined (reading 'findByPk')` (Sites Sequelize-модель не инициализирована) → весь SSR 500. **Откатил прод на `19a4a84` (verified 200).** Фикс версий snolla — зона web/snolla-владельца (пир + snolla upstream), не ops. Артефакты сборки (новый `apps/web/Dockerfile` + root `.dockerignore`) лежат в рабочем дереве монорепы, готовы к коммиту после фикса депов.
**Next action:** Пир/snolla: развести конфликт `@snollajs/content-api@0.11.0` × `@snollajs/snolla@{0.11,0.16}` (выровнять content-api под snolla 0.16, либо починить init Sites-модели в 0.11) → пересобрать → повторить деплой по готовому рецепту.
**Update 2026-06-18 (2):** Пир снял snolla-блокер (commit `eaee56f`: content-api@0.12 peerDep + snolla@^0.17 + vue→3.5.38). Пересобрал из `eaee56f`, задеплоил → **snolla-500 ушёл, home/категории 200 с верным SEO** (`/catalog/planken` → title «Планкен прямой и скошенный — купить в СПб» ✓). **НО новый блокер:** `sharp` нативный libvips не бандлится в Nitro `.output` (`libvips-cpp.so.8.18.3: cannot open shared object`) → товарный листинг `/snolla/stores/.../products` 500 → каталог не грузит товары. Платформо-зависимо (локальный prod-бандл пира на его ОС грузит sharp). **Откатил прод на `19a4a84` снова (home 200 + products 200, каталог жив).** sharp приехал с бампом депов — старый 19a4a84 нативных модулей не имел.
**Blocker (актуальный):** `sharp`/libvips не попадает в standalone Nitro output. Шов: ПОЧЕМУ sharp в товарном пути = поведение snolla/content-api; КАК забандлить = `apps/web` `nuxt.config` (nitro traceInclude/externals) ИЛИ runner-стейдж Dockerfile (скопировать `@img/sharp-*` нативы в `.output`). Образ `eaee56f` в реестре (не рабочий из-за sharp).
**Next action:** решить владельца sharp-фикса (admin Dockerfile-bundling vs пир nuxt.config) → пересобрать → повторить деплой (рецепт отлажен, ~10 мин).
**Branch:** n/a
**Notify:** victor/pilorama98.ru
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/pilorama98.ru / 2026-06-18T17:44:33.214Z -->
<!-- blocked-by: vitya@.admin-exec / 2026-06-18 / build+deploy mechanics solved; prod 500 from @snollajs/snolla@0.11.0 getSiteById; rolled back to 19a4a84 (200) -->
<!-- reblocked: vitya@.admin-exec / 2026-06-18 / snolla fixed (eaee56f), но sharp/libvips не бандлится в .output → products 500; rolled back to 19a4a84 again -->
---