33 Commits

Author SHA1 Message Date
coopops c94043e77f fix(docker): не скачивать бинарники electron/puppeteer в mono-base
Их postinstall тянет тяжёлые сетевые загрузки (Electron zip, Chromium),
не нужные ни для build (unbuild/tsc/vite), ни для runtime — периодически
валил release job TLS-таймаутом, из-за чего publish-packages (needs: release)
не запускался вообще.
2026-07-17 14:40:39 +00:00
coopops 223dd00f91 fix(mono-base): install ca-certificates in runtime stage
@livekit/rtc-node (Rust + rustls + rustls-native-certs) reads root CAs
only from the system trust store. node:22-slim ships without
ca-certificates, so without /etc/ssl/certs/ca-certificates.crt every TLS
handshake from native bindings fails with
"invalid peer certificate: UnknownIssuer" — even for a valid LE chain.
Node.js itself is unaffected (own embedded CA bundle).

Incident 2026-05-21: secretary in dicoop/coopback:v2026.5.21-2 could not
connect to wss://chatcooprtc.coopenomics.world (controller logs full of
SecretaryAgentService UnknownIssuer; nginx on api-prod never saw the
handshake — broken before HTTP upgrade). Hot-fix on
voskhod-coopback-blue (docker cp ca-certificates.crt + restart)
restored secretary connectivity; this commit makes the fix permanent
in the base image so every consumer of dicoop/mono-base
(coopback / desktop / cooparser / notifications / boot) inherits it
on the next release tag.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 13:21:26 +00:00
coopops e5613405f4 fix(ci): запинить pnpm через packageManager + allowlist build-скриптов
Без пина CI каждый раз тянул latest pnpm; на 10.4+ ignored builds
из warning стали ERR_PNPM_IGNORED_BUILDS, и `pnpm install --frozen-lockfile`
валился на electron/esbuild/@parcel/watcher и пр.

- packageManager=pnpm@10.33.0 в корневом package.json (синхронно с
  publish-packages.yaml и components/boot/Dockerfile)
- pnpm.onlyBuiltDependencies — 18 пакетов из лога фейла
- Dockerfile: corepack enable вместо `npm install -g pnpm` (обе стадии)
- publish-docs.yaml: pnpm/action-setup@v4 без version + cache: pnpm

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 05:35:36 +00:00
coopops df062ea271 refactor(prod-runtime): сервисы стартуют без devDeps + вернули prune
Теперь все production-сервисы запускаются изнутри dicoop/mono-base
без volume-mount и без devDeps:

- @coopenomics/parser: scripts.start `esno src/index.ts`
  → `node ./dist/index.cjs` (unbuild уже собирал dist).
- @coopenomics/notifications: scripts.sync `tsx src/sync/sync-runner.ts`
  → `node ./dist/sync/sync-runner.cjs`. Добавлен entry
  `src/sync/sync-runner` в build.config.ts — unbuild делает
  bundle с разрешёнными импортами (старый tsc-output ломался
  под чистым node из-за extension-less ESM-импортов).
  Поле `bin.novu-sync` обновлено на `.cjs`.
- @coopenomics/controller: `tsconfig-paths` перенесён из devDeps
  в deps. Сервис стартует через `ts-node -r tsconfig-paths/register`
  (ts-node уже был в deps). После prune --prod оба останутся.

В корневом Dockerfile вернули `pnpm prune --prod --ignore-scripts`
после lerna run build — выкидывает все devDeps (typescript, vitest,
unbuild, eslint, quasar, tsx, esno и пр.).

Smoke-test slim-образа `dicoop/mono-base:dev-local` (2.96GB):
- parser → дотягивает до runtime, валится на missing NODE_ENV ✓
- notifications → стартует, валится на missing NOVU_API_KEY ✓
- desktop → дотягивает до runtime, валится на missing chain url ✓
- boot --help → работает ✓
- coopback (controller) → ts-node компилирует, стартует ✓

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 16:17:59 +00:00
coopops 615052e4ec fix(docker): откат pnpm prune --prod до фикса scripts.start
cooparser стартует через `esno src/index.ts` (esno = devDep) и
notifications — через `tsx src/sync/sync-runner.ts` (tsx = devDep).
В playbook'е monocoop pull-based деплой (docker-compose.containers.yaml)
запускает их без volume-mount, изнутри образа. После prune --prod
оба упали бы на старте с `esno: not found` / `tsx: not found`.

mono-base остаётся ~5GB (вместо 3GB после prune). Полное сжатие
вернём отдельным шагом — после того как cooparser и notifications
переведём на `node dist/...`.

Multi-stage сама по себе уже даёт win: 7.36GB → ~5GB через
.dockerignore + apt --no-install-recommends + python3-only-runtime
без gcc/dev-headers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 15:38:08 +00:00
coopops 726d0c620e chore(docker): multi-stage mono-base + testnet smoke-stack (story 6.1)
Корневой Dockerfile переписан под две стадии: builder с full toolchain
(apt dev-headers, WeasyPrint в venv, pnpm install + lerna run build +
pnpm prune --prod --ignore-scripts) и runtime — slim node:22-slim
без gcc/dev-headers, только runtime-libs WeasyPrint + готовый /app.

Локально сжалось с 7.36GB до 2.95GB (-60%). Образы наследники
(dicoop/desktop / coopback / cooparser / notificator / notifications)
автоматом получат тонкий runtime через build-containers.yaml.

Безопасность для playbook'ов monocoop: их docker-compose.yaml собирает
сервисы из components/{controller,parser,desktop}/Dockerfile (не
корневого) и монтирует ./:/app — корневой mono-base туда вообще не
попадает.

.dockerignore — выкинул .git (962MB), blockchain-data/wallet-data,
_blago, coverage, *.log и т.п. Build-context теперь намного легче.

docker-compose.testnet.yml — локальный 3-сервисный smoke-стек:
ke-node (dicoop/blockchain_v5.1.1:dev) + ke-contracts (one-shot
copy из dicoop/contracts:dev в shared volume) + ke-bootstrap
(mono-base, node /app/components/boot/dist/index.cjs boot:remote).
Изолирован от dev-ноды mono-ai-4-node-1 через отдельную сеть и порты
8919/9907/8101.

В playbook'ах не применяется (там docker-compose.yaml, не .testnet.yml).

.gitignore — добавлен .env.testnet (содержит EOSIO_*KEY).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 15:21:17 +00:00
Alex Ant 69ab3f9770 upgrade node 2026-03-24 18:36:22 +05:00
Alex Ant 5a2930029b update 2026-02-20 11:09:15 +05:00
Alex Ant 97e67f8a88 fix workflow for package deployment 2026-02-20 10:18:47 +05:00
Alex Ant 6939783518 update 2026-02-20 09:30:01 +05:00
Alex Ant 52c4ef5df5 fix builder 2026-02-20 09:26:10 +05:00
Alex Ant a556c29a17 fix docker base image 2026-02-20 00:12:02 +05:00
Alex Ant a7a3eb8658 weasyprint -> 67 2025-12-13 12:21:17 +05:00
Alex Ant 6033af0f23 fix 2025-12-13 11:28:10 +05:00
Alex Ant a37f40ff6e weasyprint #2 2025-12-13 11:18:25 +05:00
Alex Ant e059d0cbd9 Dockerfile 2025-12-13 10:50:25 +05:00
Alex Ant eba2abc108 downgrade weasyprint and upgrade base image 2025-12-13 10:41:46 +05:00
Alex Ant 442413ec6b up weasyprint version 2025-12-13 10:09:25 +05:00
Alex Ant aa456f6cff update 2025-05-01 11:12:30 +05:00
Alex Ant 3a9dfa643e update 2025-05-01 11:01:19 +05:00
Alex Ant 8d47f118dd update 2025-05-01 10:29:53 +05:00
Alex Ant d7b45157ff update 2025-05-01 10:27:41 +05:00
Alex Ant db8a48284f update 2025-05-01 10:24:33 +05:00
Alex Ant b00b8d6ca3 update 2025-05-01 09:59:02 +05:00
Alex Ant 22b3d8f691 update 2025-05-01 09:51:43 +05:00
Alex Ant 432c1cd476 update 2025-05-01 09:41:37 +05:00
Alex Ant ed8e4a059a Обновление Dockerfile: замена команды установки зависимостей на принудительную, улучшение структуры образа. Изменение конфигурации GitHub Actions для отключения кеширования и упрощения сборки образов. 2025-05-01 09:36:57 +05:00
Alex Ant 571c1e31ac Оптимизация Dockerfile: добавление этапа сборки для зависимостей, упрощение копирования файлов и улучшение структуры образа. Обновление конфигурации GitHub Actions для сборки и публикации образов с использованием Docker Buildx. 2025-04-30 21:49:16 +05:00
Alex Ant 9b1be55a9e Обновление конфигурации проекта: замена использования переменных окружения на новый модуль env, упрощение Dockerfile, улучшение сборки контейнеров и исправление мелких ошибок в компонентах. 2025-04-30 20:30:42 +05:00
Alex Ant ef4a7d1fa1 update 2025-04-30 18:37:23 +05:00
Alex Ant 71425977f5 Обновление Dockerfile для упрощения сборки с использованием lerna. Добавление новых прокси-файлов для модулей @dicebear/core, @dicebear/collection и email-regex. Обновление зависимостей в package.json и pnpm-lock.yaml. Изменение конфигурации Quasar для оптимизации работы с новыми модулями. 2025-04-29 23:21:10 +05:00
Alex Ant e030d97059 workflow initialization 2025-04-29 21:40:51 +05:00
Alex Ant 0688467302 update 2024-09-03 20:11:17 +05:00