infra: add Milvus vector DB and PostgreSQL

- Added etcd service for distributed coordination
- Added MinIO service for object storage
- Added Milvus v2.4.0 vector database (standalone mode)
- Added PostgreSQL 15-alpine for knowledge base
- All services include healthchecks
- Updated .env with POSTGRES_PASSWORD and MILVUS_API_URL
This commit is contained in:
2026-03-16 16:16:28 +01:00
parent f72ca08396
commit 03b7cace6f

View File

@@ -56,9 +56,46 @@ services:
- ./local-files:/files
- ./crts:/opt/custom-certificates
milvus:
image: milvusdb/milvus:latest
etcd:
image: quay.io/coreos/etcd:v3.5.5
restart: always
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
ports:
- "2379:2379"
volumes:
- etcd_data:/etcd-data
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 10s
timeout: 5s
retries: 5
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379
minio:
image: minio/minio:latest
restart: always
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/minio_data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
command: minio server /minio_data --console-address ":9001"
milvus:
image: milvusdb/milvus:v2.4.0
restart: always
command: milvus run standalone
ports:
- "19530:19530"
- "9091:9091"
@@ -67,6 +104,11 @@ services:
- MINIO_ADDRESS=minio:9000
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: 10s
@@ -97,3 +139,5 @@ volumes:
traefik_data:
milvus_data:
postgres_data:
etcd_data:
minio_data: