version: "3.9"

# Локальный стек разработки и тестирования.
# В прод-среде сервисы поднимаются через systemd-юниты или podman-compose
# с production-overlay. Здесь — dev-конфиг с минимальными настройками
# и без секретов.

services:
  postgres:
    image: docker.io/library/postgres:16
    # В проде заменить на postgrespro/std-16 или registry.postgrespro.ru/pgpro/...
    container_name: bj-postgres
    environment:
      POSTGRES_USER: bj
      POSTGRES_PASSWORD: bj_dev
      POSTGRES_DB: bj
    ports:
      - "127.0.0.1:5432:5432"
    volumes:
      - bj-postgres-data:/var/lib/postgresql/data

  minio:
    image: docker.io/minio/minio:latest
    container_name: bj-minio
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: bj
      MINIO_ROOT_PASSWORD: bj_dev_minio
    ports:
      - "127.0.0.1:9000:9000"
      - "127.0.0.1:9001:9001"
    volumes:
      - bj-minio-data:/data

  crypto-service:
    build:
      context: ../../services/crypto-service
      dockerfile: Dockerfile
    container_name: bj-crypto-service
    environment:
      BJ_CRYPTO_SOCKET: /run/bj/crypto.sock
      BJ_CRYPTO_PROVIDER: stub
    volumes:
      # UDS-сокет наружу как named volume, чтобы Go-сервисы
      # (m2m-core, lk-gateway, nsd-adapter) могли его mount'ить.
      - bj-crypto-sock:/run/bj

volumes:
  bj-postgres-data:
  bj-minio-data:
  bj-crypto-sock:
