Срез 0: скелет scan-gateway — без фронта и БД, горячие папки local/smb, воркер NATS без JetStream, эмулятор ИС Сканирование #3

Merged
aep merged 68 commits from feat/1-slice-0-skeleton into main 2026-10-04 18:41:20 +03:00
Showing only changes of commit 38f67bc582 - Show all commits

View File

@ -17,7 +17,7 @@ help:
@echo "check - lint + test"
@echo "docker-build - собрать docker-образ $(IMAGE) (контекст — корень репозитория)"
@echo "check-full - check + test-integration + docker-build (по порядку, до первой ошибки)"
@echo "up - поднять NATS/MinIO/PostgreSQL общим compose-проектом arm-ka"
@echo "up - поднять NATS/MinIO/PostgreSQL общим compose-проектом arm-ka и создать бакет (minio-init)"
@echo "emulator - запустить эмулятор ИС Сканирование (python -m src.scan_emulator)"
# Python 3.11 (версия платформы); внутренние пакеты raisa_* вне банка недоступны — пропускаем их
@ -52,9 +52,12 @@ check-full:
$(MAKE) docker-build
# Общий compose-проект workspace (arm-ka): его используют и другие сервисы, поэтому целей down/stop/restart нет.
# --wait — только со списком долгоживущих сервисов: одноразовый minio-init завершается кодом 0, и compose считает это сбоем
# --wait — только со списком долгоживущих сервисов: одноразовый minio-init завершается кодом 0, и compose считает это сбоем.
# Поэтому бакет создаётся отдельным шагом: `run --rm minio-init` (идемпотентно: `mc mb --ignore-existing`; на свежем
# томе без него интеграционные тесты падают на NoSuchBucket). Код выхода шага пробрасывается в make.
up:
docker compose -f $(COMPOSE_FILE) --project-name $(COMPOSE_PROJECT) up -d --wait postgres nats minio
docker compose -f $(COMPOSE_FILE) --project-name $(COMPOSE_PROJECT) run --rm minio-init
# Эмулятор ИС Сканирование (параметры — SCAN_HOTFOLDER_PATH, SCAN_FIXTURES_DIR, SCAN_EMULATOR_DELAY из api/.env)
emulator: