version: '3.5' services: # etcd: # container_name: milvus-etcd # image: quay.io/coreos/etcd:v3.5.18 # environment: # - ETCD_AUTO_COMPACTION_MODE=revision # - ETCD_AUTO_COMPACTION_RETENTION=1000 # - ETCD_QUOTA_BACKEND_BYTES=4294967296 # - ETCD_SNAPSHOT_COUNT=50000 # volumes: # - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd # command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd # healthcheck: # test: ["CMD", "etcdctl", "endpoint", "health"] # interval: 30s # timeout: 20s # retries: 3 # minio: # container_name: milvus-minio # image: minio/minio:RELEASE.2024-05-28T17-19-04Z # environment: # MINIO_ACCESS_KEY: minioadmin # MINIO_SECRET_KEY: minioadmin # ports: # - "9001:9001" # - "9000:9000" # volumes: # - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data # command: minio server /minio_data --console-address ":9001" # healthcheck: # test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] # interval: 30s # timeout: 20s # retries: 3 # standalone: # container_name: milvus-standalone # image: milvusdb/milvus:v2.5.14 # command: ["milvus", "run", "standalone"] # security_opt: # - seccomp:unconfined # environment: # MINIO_REGION: us-east-1 # ETCD_ENDPOINTS: etcd:2379 # MINIO_ADDRESS: minio:9000 # volumes: # - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus # healthcheck: # test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] # interval: 30s # start_period: 90s # timeout: 20s # retries: 3 # ports: # - "19530:19530" # - "9091:9091" # depends_on: # etcd: # condition: service_healthy # minio: # condition: service_healthy app: container_name: rag-app image: rag-app build: context: . dockerfile: Dockerfile ports: - "8000:8000" environment: - MILVUS_URI=${MILVUS_URI} - MILVUS_API_KEY=${MILVUS_API_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} - NEBIUS_API_KEY=${NEBIUS_API_KEY} - PASSWORD=${PASSWORD} - CHAINLIT_AUTH_SECRET=${CHAINLIT_AUTH_SECRET} - OAUTH_GOOGLE_CLIENT_ID=${OAUTH_GOOGLE_CLIENT_ID} - OAUTH_GOOGLE_CLIENT_SECRET=${OAUTH_GOOGLE_CLIENT_SECRET} - DATABASE_URL=${DATABASE_URL} # Memory constraints for 4GB DigitalOcean droplet # Allocate 1.5GB to app, leaving room for Milvus and system