dawit45 commited on
Commit
194acd6
·
verified ·
1 Parent(s): 6693bda

Create docker-compose.yml

Browse files
Files changed (1) hide show
  1. docker-compose.yml +101 -0
docker-compose.yml ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: '3.8'
2
+
3
+ services:
4
+ # ----------------------------------------------------------------
5
+ # 1. THE CLINICAL BRAIN (Python/FastAPI) 🧠
6
+ # ----------------------------------------------------------------
7
+ clinical-brain:
8
+ build:
9
+ context: ./services/clinical-brain
10
+ dockerfile: Dockerfile
11
+ container_name: vitalis-brain
12
+ ports:
13
+ - "8000:8000"
14
+ environment:
15
+ - DATABASE_URL=postgresql://vitalis_user:secret_password@postgres:5432/vitalis_db
16
+ - MILVUS_HOST=milvus-standalone
17
+ - MILVUS_PORT=19530
18
+ depends_on:
19
+ - postgres
20
+ - milvus-standalone
21
+ volumes:
22
+ - ./services/clinical-brain:/app # Hot-reload: Code updates live!
23
+
24
+ # ----------------------------------------------------------------
25
+ # 2. THE DOCTOR'S DASHBOARD (Next.js) 💻
26
+ # ----------------------------------------------------------------
27
+ web-dashboard:
28
+ build:
29
+ context: ./apps/web-dashboard
30
+ dockerfile: Dockerfile
31
+ container_name: vitalis-web
32
+ ports:
33
+ - "3000:3000"
34
+ environment:
35
+ - NEXT_PUBLIC_API_URL=http://localhost:8000/api/v1
36
+ depends_on:
37
+ - clinical-brain
38
+ volumes:
39
+ - ./apps/web-dashboard:/app
40
+ - /app/node_modules # Prevent host node_modules from breaking container
41
+
42
+ # ----------------------------------------------------------------
43
+ # 3. PATIENT DATABASE (PostgreSQL) 🗄️
44
+ # ----------------------------------------------------------------
45
+ postgres:
46
+ image: postgres:15-alpine
47
+ container_name: vitalis-postgres
48
+ ports:
49
+ - "5432:5432"
50
+ environment:
51
+ POSTGRES_USER: vitalis_user
52
+ POSTGRES_PASSWORD: secret_password
53
+ POSTGRES_DB: vitalis_db
54
+ volumes:
55
+ - ./infrastructure/data/postgres:/var/lib/postgresql/data
56
+
57
+ # ----------------------------------------------------------------
58
+ # 4. AI MEMORY (Milvus Vector DB) 🤖
59
+ # Requires etcd (config) and MinIO (storage)
60
+ # ----------------------------------------------------------------
61
+ etcd:
62
+ container_name: vitalis-etcd
63
+ image: quay.io/coreos/etcd:v3.5.0
64
+ environment:
65
+ - ETCD_AUTO_COMPACTION_MODE=revision
66
+ - ETCD_AUTO_COMPACTION_RETENTION=1000
67
+ - ETCD_QUOTA_BACKEND_BYTES=4294967296
68
+ volumes:
69
+ - ./infrastructure/data/etcd:/etcd
70
+ command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls=http://0.0.0.0:2379 --data-dir /etcd
71
+
72
+ minio:
73
+ container_name: vitalis-minio
74
+ image: minio/minio:RELEASE.2023-03-20T20-16-18Z
75
+ environment:
76
+ MINIO_ACCESS_KEY: minioadmin
77
+ MINIO_SECRET_KEY: minioadmin
78
+ volumes:
79
+ - ./infrastructure/data/minio:/minio_data
80
+ command: minio server /minio_data
81
+ healthcheck:
82
+ test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
83
+ interval: 30s
84
+ timeout: 20s
85
+ retries: 3
86
+
87
+ milvus-standalone:
88
+ container_name: vitalis-milvus
89
+ image: milvusdb/milvus:v2.3.0
90
+ command: ["milvus", "run", "standalone"]
91
+ environment:
92
+ ETCD_ENDPOINTS: etcd:2379
93
+ MINIO_ADDRESS: minio:9000
94
+ volumes:
95
+ - ./infrastructure/data/milvus:/var/lib/milvus
96
+ ports:
97
+ - "19530:19530"
98
+ - "9091:9091"
99
+ depends_on:
100
+ - "etcd"
101
+ - "minio"