Files
mono/docker-compose.yaml
coopops 33801798ed
Typecheck / desktop (pull_request) Successful in 14m26s
Typecheck / controller (pull_request) Successful in 13m48s
[C28-21][@ant] refactor(controller): полное удаление OpenSearch — поиск и список документов целиком на Postgres
Завершение перехода одним PR: searchDocuments и getDocuments уже читают PG-реестр подписанных
документов, OpenSearch стал мёртвым кодом — убираем его полностью.

- Удалены infrastructure/search/* (opensearch.service, search-registry.service,
  search-infrastructure.module) и application/search/services/search-event.service
  (старый индексатор по newsubmitted — заменён SignedDocumentIngestionService + backfill).
- app.module: снят SearchInfrastructureModule. search.module: только SearchResolver (читает
  SIGNED_DOCUMENT_REPOSITORY из глобального TypeOrmModule).
- package.json: убрана зависимость @opensearch-project/opensearch; pnpm-lock.yaml пересчитан.
- docker-compose: удалён сервис opensearch + volume opensearch_data.
- .env-example: убраны OPENSEARCH_* (поиск больше не конфигурируется через env).
- system.interactor: features.search = true (поиск на PG доступен всегда, не зависит от OPENSEARCH_ENABLED).

Файлы удалены только из текущего состояния (git rm) — в истории остаются.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-29 11:36:55 +00:00

131 lines
4.1 KiB
YAML

# Имена контейнеров не задаём явно — docker генерит их с префиксом
# COMPOSE_PROJECT_NAME (см. .env). Это позволяет параллельный запуск нескольких
# инстансов mono-ai-N. Внутри сети контейнеры стучатся друг к другу по service name.
services:
node:
image: dicoop/blockchain:latest
ports:
- "${NODE_HTTP_PORT:-8888}:8888"
- "${NODE_P2P_PORT:-9876}:9876"
- "${NODE_HISTORY_PORT:-8070}:8070"
volumes:
- ./components/boot/blockchain-data:/mnt/dev/data
- ./components/boot/wallet-data:/root/eosio-wallet
- ./components/contracts/build/contracts:/contracts
- ./components/boot/src/configs:/mnt/dev/config
command: >
/bin/bash -c "/usr/local/bin/nodeos -d /mnt/dev/data --config-dir /mnt/dev/config --genesis-json /mnt/dev/config/genesis.json"
restart: unless-stopped
mongo:
image: mongo:latest
restart: always
volumes:
- mongo_data:/data/db
ports:
- "127.0.0.1:${MONGO_HOST_PORT:-27017}:27017"
# Локально гоняем mongo как standalone. Раньше был --replSet rs0 + rs.initiate
# в entrypoint, но проект не использует transactions / change streams /
# readConcern:'majority' — replica-set не нужен. Бонус: rs.initiate race
# на arm64 (sleep 5 не успевал, см. инцидент 2026-05-23) уходит.
command: ["mongod", "--bind_ip_all"]
monoredis:
image: redis:latest
restart: always
ports:
- "127.0.0.1:${REDIS_HOST_PORT:-6379}:6379"
postgres:
image: postgres:18
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres!23!23
POSTGRES_DB: voskhod
volumes:
- postgres_data:/var/lib/postgresql
ports:
- "127.0.0.1:${PG_HOST_PORT:-5532}:5432"
coopback:
build:
context: ./
dockerfile: components/controller/Dockerfile
image: coopback
env_file:
- ./components/controller/.env
restart: unless-stopped
# Пишем bind-mount ./:/app от хостового ant (uid 1000), иначе codegen
# (generate-client/schema, логи) кладёт root-owned файлы и ломает git checkout.
# HOME=/tmp — чтобы pnpm/кэш не сорили в репозиторий.
user: "1000:1000"
environment:
HOME: /tmp
volumes:
- ./:/app
ports:
- "0.0.0.0:${COOPBACK_HOST_PORT:-2998}:2998"
working_dir: /app
command: pnpm --filter @coopenomics/controller run dev
cooparser:
build:
context: ./
dockerfile: components/parser/Dockerfile
image: cooparser
env_file:
- ./components/parser/.env
restart: unless-stopped
# См. coopback: пишем от хостового ant (uid 1000), HOME=/tmp.
user: "1000:1000"
environment:
HOME: /tmp
volumes:
- ./:/app
working_dir: /app
command: pnpm --filter @coopenomics/parser run dev
desktop:
build:
context: ./
dockerfile: components/desktop/Dockerfile
image: desktop
env_file:
- ./components/desktop/.env
restart: unless-stopped
# См. coopback: пишем от хостового ant (uid 1000), HOME=/tmp.
user: "1000:1000"
environment:
HOME: /tmp
ports:
- "127.0.0.1:${DESKTOP_HOST_PORT:-2999}:2999"
volumes:
- ./:/app
working_dir: /app
command: pnpm --filter @coopenomics/desktop run dev
minio:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
volumes:
- minio_data:/data
ports:
- "127.0.0.1:${MINIO_HOST_PORT:-9000}:9000"
- "127.0.0.1:${MINIO_CONSOLE_HOST_PORT:-9001}:9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 5s
timeout: 3s
retries: 10
volumes:
mongo_data:
postgres_data:
minio_data: