version: '3.8' services: mongodb: image: mongo:7.0 container_name: face_recognition_mongo restart: always ports: - "27017:27017" volumes: - mongo_data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: admin123 MONGO_INITDB_DATABASE: face_recognition networks: - face_recognition_net chromadb: image: chromadb/chroma:latest container_name: face_recognition_chroma restart: always ports: - "8000:8000" volumes: - chroma_data:/chroma/chroma environment: - IS_PERSISTENT=TRUE - PERSIST_DIRECTORY=/chroma/chroma - ANONYMIZED_TELEMETRY=FALSE networks: - face_recognition_net face_recognition: build: context: . dockerfile: Dockerfile container_name: face_recognition_app restart: always ports: - "7860:7860" volumes: - ./data:/app/data - ./models:/app/models environment: - MONGODB_URL=mongodb://admin:admin123@mongodb:27017/face_recognition?authSource=admin - MONGODB_DB=face_recognition - CHROMA_HOST=chromadb - CHROMA_PORT=8000 - UPLOAD_DIR=/app/data/uploads - NVIDIA_VISIBLE_DEVICES=all depends_on: - mongodb - chromadb networks: - face_recognition_net deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] volumes: mongo_data: chroma_data: networks: face_recognition_net: driver: bridge