version: "3.9" services: api-gateway: build: context: ../../ dockerfile: infrastructure/docker/Dockerfile.python-service command: uvicorn services.api_gateway.main:app --host 0.0.0.0 --port 8080 env_file: ../../.env environment: IDENTITY_DB_PATH: /data/identities.db volumes: - ../../artifacts:/data ports: ["8080:8080"] depends_on: [detection, embedding, vector-search] detection: build: context: ../../ dockerfile: infrastructure/docker/Dockerfile.python-service command: uvicorn services.detection_service.main:app --host 0.0.0.0 --port 8001 environment: DETECTION_MODEL_PATH: /models/retinaface.onnx volumes: - ../../artifacts/models:/models ports: ["8001:8001"] embedding: build: context: ../../ dockerfile: infrastructure/docker/Dockerfile.python-service command: uvicorn services.embedding_service.main:app --host 0.0.0.0 --port 8002 environment: EMBEDDING_MODEL_PATH: /models/arcface_iresnet100.onnx volumes: - ../../artifacts/models:/models ports: ["8002:8002"] vector-search: build: context: ../../ dockerfile: infrastructure/docker/Dockerfile.python-service command: uvicorn services.vector_search_service.main:app --host 0.0.0.0 --port 8003 environment: VECTOR_INDEX_PATH: /data/index.json volumes: - ../../artifacts/vector_index:/data ports: ["8003:8003"] postgres: image: postgres:16 environment: POSTGRES_DB: aefrs POSTGRES_USER: aefrs POSTGRES_PASSWORD: aefrs ports: ["5432:5432"] volumes: - ../../database/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql:ro minio: image: minio/minio:RELEASE.2024-09-13T20-26-02Z command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: aefrs MINIO_ROOT_PASSWORD: aefrs1234 ports: ["9000:9000", "9001:9001"] rabbitmq: image: rabbitmq:3-management ports: ["5672:5672", "15672:15672"] prometheus: image: prom/prometheus:v2.54.1 volumes: - ../../monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro ports: ["9090:9090"] grafana: image: grafana/grafana:11.2.0 ports: ["3000:3000"]