aefrss / infrastructure /docker /docker-compose.yml
mohamedkh001
Deploy AEFRS complete system with models and services
ea93121
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"]