Files
vision/docker-compose.yml

114 lines
3.0 KiB
YAML

services:
gateway:
build:
context: .
dockerfile: gateway/Dockerfile
ports:
- "8003:8000"
env_file:
- .env
environment:
- CLIP_URL=http://clip:8000
- BLIP_URL=http://blip:8000
- YOLO_URL=http://yolo:8000
- QDRANT_SVC_URL=http://qdrant-svc:8000
- API_KEY=${API_KEY}
- VISION_TIMEOUT=300
- MAX_IMAGE_BYTES=52428800
depends_on:
clip:
condition: service_healthy
blip:
condition: service_healthy
yolo:
condition: service_healthy
qdrant-svc:
condition: service_healthy
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
volumes:
- ./data/qdrant:/qdrant/storage
environment:
- QDRANT__SERVICE__GRPC_PORT=6334
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:6333/collections"]
interval: 30s
timeout: 10s
retries: 5
start_period: 15s
qdrant-svc:
build:
context: .
dockerfile: qdrant/Dockerfile
environment:
- QDRANT_HOST=qdrant
- QDRANT_PORT=6333
- CLIP_URL=http://clip:8000
- COLLECTION_NAME=images
- VECTOR_DIM=512
depends_on:
qdrant:
condition: service_healthy
clip:
condition: service_healthy
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
clip:
build:
context: .
dockerfile: clip/Dockerfile
environment:
- MODEL_NAME=ViT-B-32
- MODEL_PRETRAINED=openai
- HUGGINGFACE_TOKEN=${HUGGINGFACE_TOKEN}
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
blip:
build:
context: .
dockerfile: blip/Dockerfile
environment:
#- BLIP_MODEL=Salesforce/blip-image-captioning-base
- BLIP_MODEL=Salesforce/blip-image-captioning-small
- HUGGINGFACE_TOKEN=${HUGGINGFACE_TOKEN}
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
yolo:
build:
context: .
dockerfile: yolo/Dockerfile
environment:
- YOLO_MODEL=yolov8n.pt
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s