-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yaml
96 lines (88 loc) · 2.38 KB
/
docker-compose.yaml
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
version: "3"
services:
web:
build:
context: ./client
dockerfile: Dockerfile
args:
REACT_APP_SERVER_ADDRESS: http://localhost:5000
image: dev/schema-matching-client:latest
ports:
- "3000:3000"
# WSGI Flask service containing the schema matching API
engine:
build: ./engine
image: dev/schema-matching-engine:latest
ports:
- "5000:5000"
volumes:
- ./engine:/usr/local/schema-matching-system/engine
env_file:
- env_files/redis.env
- env_files/minio.env
- env_files/rabbitmq.env
- env_files/postgres.env
restart: always
environment:
- PYTHONUNBUFFERED=1
command: gunicorn -b 0.0.0.0:5000 app:app -t 60 -w 1 --threads 1 --reload
# S3-like object store holding the data that we want to match
minio:
image: minio/minio:latest
ports:
- "9000:9000"
volumes:
- ./minio-volume:/mnt/data
env_file:
- env_files/minio.env
command: server /mnt/data
# Celery worker that does schema matching jobs
celery-worker:
build: ./engine
image: dev/schema-matching-engine:latest
restart: always
environment:
- PYTHONUNBUFFERED=1
env_file:
- env_files/redis.env
- env_files/minio.env
- env_files/rabbitmq.env
- env_files/postgres.env
command: celery -A app.celery worker -l INFO --concurrency=4 --max-memory-per-child=2929687
redis:
image: redis:latest
command: redis-server --requirepass redis --maxmemory 512mb
ports:
- "6379:6379"
# Message queue required by Celery
celery-rabbitmq:
image: rabbitmq:management
restart: always
env_file: env_files/rabbitmq.env
ports:
- "5672:5672"
- "15672:15672"
# Celery Flower dashboard
celery-flower:
build: ./engine
image: dev/schema-matching-engine:latest
command: "celery -A app.celery flower --broker_api=http://rabbitmq:rabbitmq@celery-rabbitmq:15672/api/"
restart: always
environment:
- FLOWER_PORT=5555
env_file:
- env_files/redis.env
- env_files/minio.env
- env_files/rabbitmq.env
- env_files/postgres.env
ports:
- "5555:5555"
depends_on:
- celery-worker
postgres-db:
image: postgres:latest
env_file: env_files/postgres.env
command: "postgres -c max_connections=100 -c shared_buffers=128MB"
shm_size: 128M
ports:
- "5432:5432"