Files
admin/.tasks/2026-08-13-00945-stostayer-web-deploy-0-3-23.md

29 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# stostayer-web-deploy-0-3-23
**Status:** done 🟢
**Branch:** master (victor/stostayer.new)
**Where I stopped:** ДЕПЛОЙ ЗАВЕРШЁН 2026-08-13. Образ `docker.stostayer.ru/stostayer-web:0.3.23` (коммиты `e5f7bd6`+`7e51cbf`+`d49b4bb`, master-tip) собран, запушен (1 попытка, слои mostly already-exists → egress мал, бана нет), стек Portainer 16 передеплоен (0.3.22→0.3.23, HTTP=200, env re-supplied `[]`у стека env и так пуст). Контейнер Up, RestartCount=0, старт чистый (`Server listening :3000`). Verify с хоста: calculator Focus II → 200 + баннер «актуальны при приобретении запасных частей (материалов) в компании Стайер» (grep=1); регресс `/` и `/remont/to/auto/ford/focus/focus-ii-...` → 200; Focus IV (exactPrices=0) → баннера НЕТ, алерт «уточняйте у наших мастеров» (grep=1) — ровно по письму. Откат: PUT стека 16 на `0.3.22` (тег на хосте), RTO ~30-60с.
## Goal
Раскатать на прод www.stostayer.ru запрос их прогера (письмо `.agents/inbox/2026-08-13T08-43-41Z-stostayer-new.md`): calculator-баннер про цены при покупке запчастей + фикс краша (snolla loadCity/loadSite) + стек-фикс легаси сборки (явные vue/vuex/vue-router/mariadb deps, nmHoistingLimits).
## Нюансы деплоя (важно для следующего раза)
- **Offline-build (`enableNetwork: false`) НЕ прошёл**: в `.yarn/cache` нет linux-бинарей `@esbuild/linux-x64@0.21.5` и `@rollup/rollup-linux-x64-gnu@4.62.3` (кэш с Windows-хоста). Yarn падает `YN0041 Invalid authentication (as an anonymous user)` — verdaccio требует токен.
- **Фикс**: временно в build-копию `.yarnrc.yml` вернуть строку `npmAuthToken: "${VERDACCIO_TOKEN}"` (перед build удалить/вернуть), в `packages/web/Dockerfile` временно добавить `ARG VERDACCIO_TOKEN` + `ENV VERDACCIO_TOKEN=$VERDACCIO_TOKEN` перед `RUN yarn install`, собрать `docker build --build-arg VERDACCIO_TOKEN="$VERDACCIO_TOKEN"`. После build — `git checkout -- .yarnrc.yml packages/web/Dockerfile`. (Безопаснее: докинуть 2 зипа в cache.)
- **Portainer API с хоста**: `base=http://<IP-portainer>:9000` — порт обязателен (голый IP → curl на :80 → HTTP=000). IP портейнера: `docker inspect portainer --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'` → 172.18.0.2.
- Прод до этого деплоя был на **0.3.22** (не 0.3.20 как писал ранбук; вики отставала на 2 деплоя: 0.3.21/0.3.22 собраны 24.07).
- Деплой 0.3.22 (24.07) делался через pscp+`sudo docker load` (БЕЗ push в :443 — бан-риск). Мой push 0.3.23 прошёл штатно — слои переиспользовались.
## Decisions log
- 2026-08-13: offline-build vs сеть — выбран сетевой путь с временным токеном (cache-пополнение linux-бинарей сложнее, чем ARG/ENV на раз).
- 2026-08-13: push в registry выполнен (в отличие от деплоя 0.3.22 через pscp+load) — 1 попытка, слои already-exists, бан-риска нет.
## Completed steps
- [x] Письмо прогера прочитано (инбокс, доставка pi-расширением inbox-monitor).
- [x] Build 0.3.23 (master e5f7bd6), restore .yarnrc.yml/Dockerfile.
- [x] Push 0.3.23 → docker.stostayer.ru (1 попытка, digest sha256:c6650744e198...).
- [x] Redeploy Portainer stack 16 (PUT, pullImage:true, env re-supply).
- [x] Verify: баннер Focus II, регресс `/`+ремонтная, Focus IV без баннера; логи чистые.