Cortex / docker-compose.yml
aditya-joshi-05's picture
update
a504663
version: "3.9"
# Milvus standalone stack β€” all you need for Phase 1 development.
# Run: docker-compose up -d
# Stop: docker-compose down
# Data is persisted in Docker volumes (volumes: block at the bottom).
services:
# ── etcd (Milvus metadata store) ──────────────────────────────
etcd:
image: quay.io/coreos/etcd:v3.5.5
container_name: cortex-etcd
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
command: >
etcd
--name etcd0
--data-dir /etcd
--initial-advertise-peer-urls http://etcd:2380
--listen-peer-urls http://0.0.0.0:2380
--advertise-client-urls http://etcd:2379
--listen-client-urls http://0.0.0.0:2379
--initial-cluster etcd0=http://etcd:2380
volumes:
- etcd_data:/etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
# ── MinIO (Milvus object store) ───────────────────────────────
minio:
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
container_name: cortex-minio
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
command: minio server /minio_data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/minio_data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
# ── Milvus standalone ─────────────────────────────────────────
milvus:
image: milvusdb/milvus:v2.4.0
container_name: cortex-milvus
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
ports:
- "19530:19530" # gRPC (used by pymilvus)
- "9091:9091" # Milvus health / metrics
volumes:
- milvus_data:/var/lib/milvus
depends_on:
etcd:
condition: service_healthy
minio:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
timeout: 20s
retries: 5
# ── Attu (Milvus UI) ───────────────────────────
attu:
image: zilliz/attu:v2.4
container_name: cortex-attu
environment:
- MILVUS_URL=milvus:19530
ports:
- "3000:3000"
depends_on:
milvus:
condition: service_healthy
# ── Redis (Cache/Message Broker) ───────────────────────────
# redis:
# image: redis:7-alpine
# container_name: cortex-redis
# ports:
# - "6379:6379"
# volumes:
# - redis_data:/data
# healthcheck:
# test: ["CMD", "redis-cli", "ping"]
# interval: 10s
# timeout: 5s
# retries: 5
volumes:
etcd_data:
minio_data:
milvus_data:
# redis_data: