From 3958107715682fc4973416e4821e1b4bfd373984 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 18 Jun 2026 22:46:05 +0300 Subject: [PATCH] =?UTF-8?q?meta(tasks):=20deploy-pilorama=20reblocked=20?= =?UTF-8?q?=E2=80=94=20snolla=20fixed=20(eaee56f)=20but=20sharp/libvips=20?= =?UTF-8?q?not=20bundled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .tasks/STATUS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index bd479e1..66a3138 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -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 + ---