Skip to content
2.12.0

Образы и CI ​

Как собирается образ EVA, как запустить платформу локально для проверки и какие артефакты выпускает CI, включая сборки EVA Desktop.

Образ ​

Образ собирается из корня монорепозитория:

dockerfile
FROM node:22-alpine AS build
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@11.21.0 --activate
COPY . .
RUN pnpm install --frozen-lockfile
RUN pnpm build
CMD ["pnpm", "start"]

pnpm build собирает общие пакеты, веб-интерфейс, API, Runtime, Package-pool и архивы сервисов Desktop с манифестом обновлений. pnpm start запускает API, Runtime и Package-pool.

Первый запуск ​

bash
pnpm migrate:apply   # миграции базы
pnpm seed:api        # первый администратор из SEED_ADMIN_*
pnpm start

В Kubernetes миграции удобно выполнять init-контейнером из того же образа.

Локально для проверки ​

bash
pnpm install
cp .env.example .env
pnpm deps:up         # PostgreSQL и OnlyOffice в Docker
pnpm migrate:apply
pnpm seed:api
pnpm dev             # API, Runtime, Package-pool и интерфейс с горячей перезагрузкой

Локальный режим Desktop без клиента: pnpm dev-loc. Он использует отдельную папку данных ~/.eva-dev.

CI ​

Пайплайн подключает общие шаблоны сервисов компании и добавляет свои стадии:

СтадияЧто делает
ПроверкиЛинтер, типы, тесты
Сборка образаОбраз платформы
Desktop: LinuxAppImage, собранный на Ubuntu 22.04 для совместимости со старыми дистрибутивами
Desktop: WindowsУстановщик NSIS .exe

Сборки Desktop выпускаются из веток разработки и тегов. Сервисы Desktop, которые клиент скачивает и обновляет сам, отдаёт API платформы по адресу /api/desktop/services/*, поэтому каталог сборок должен попадать в образ или том. Путь переопределяется EVA_DESKTOP_ARTIFACTS_DIR.

Полезные команды ​

КомандаЧто делает
pnpm migrate:applyПрименить миграции
pnpm seed:apiСоздать администратора
pnpm lint, pnpm type-checkПроверки кода
pnpm start:apiТолько API, если Runtime уже запущен

Документация экосистемы EVA 2.1