-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
143 lines (133 loc) · 3.41 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
version: '3.5'
services:
api:
container_name: learn-api
build:
context: .
dockerfile: Dockerfile
restart: always
volumes:
- ./:/app
environment:
APP_TYPE: "app"
PORT: 3001
AMQP_DSN: "pyamqp://guest:guest@rabbitmq:5672//"
MONGO_DSN: "mongodb://root:default@mongo:27017"
MONGO_DB_NAME: "learn"
MILVUS_HOST: "milvus"
MILVUS_PORT: 19530
MILVUS_DB_NAME: knowledge
MILVUS_COLLECTION_NAME: brain
env_file:
- .env
nginx:
image: nginx:latest
restart: always
ports:
- "3001:87"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- "api"
worker:
container_name: worker
build:
context: .
dockerfile: Dockerfile
restart: always
volumes:
- ./:/app
environment:
APP_TYPE: "worker"
CONCURRENCY: 2
AMQP_DSN: "pyamqp://guest:guest@rabbitmq:5672//"
MONGO_DSN: "mongodb://root:default@mongo:27017"
MONGO_DB_NAME: "learn"
MILVUS_HOST: "milvus"
MILVUS_PORT: 19530
MILVUS_DB_NAME: knowledge
MILVUS_COLLECTION_NAME: brain
env_file:
- .env
depends_on:
- "rabbitmq"
rabbitmq:
image: rabbitmq:latest
restart: always
container_name: rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
volumes:
- rabbitmq_data:/var/lib/rabbitmq/
mongo:
image: mongo:latest
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: default
volumes:
- mongodb_data:/data/db
etcd:
container_name: milvus-etcd
restart: always
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- etcd_data:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1: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
restart: always
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- minio_data:/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
milvus:
container_name: milvus-standalone
restart: always
image: milvusdb/milvus:v2.3.4
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- milvus_data:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
depends_on:
- "etcd"
- "minio"
networks:
default:
name: learn-api
driver: bridge
volumes:
milvus_data:
minio_data:
etcd_data:
rabbitmq_data:
mongodb_data: