forked from jendelel/PrankWebApp
-
Notifications
You must be signed in to change notification settings - Fork 4
/
docker-compose-prankweb.yml
125 lines (125 loc) · 3.5 KB
/
docker-compose-prankweb.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
services:
gateway:
build:
context: ./
dockerfile: ./gateway/Dockerfile
args:
GOOGLE_ANALYTICS: ${FRONTEND_GOOGLE_ANALYTICS}
WEB_SERVICE_USER: ${WEB_SERVICE_USER}
WEB_SERVICE_PASSWORD: ${WEB_SERVICE_PASSWORD}
depends_on:
- web-server
restart: unless-stopped
ports:
- "8020:80"
rabbitmq:
build:
context: ./
dockerfile: ./rabbitmq/Dockerfile
hostname: "rabbitmq"
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
restart: unless-stopped
volumes:
- rabbitmq:/var/lib/rabbitmq/
healthcheck:
test: rabbitmq-diagnostics -q status
interval: 30s
timeout: 30s
retries: 3
flower:
build: https://github.com/mher/flower.git
command: "celery flower --url_prefix=service/flower"
environment:
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672"
depends_on:
rabbitmq:
condition: service_healthy
web-server:
build:
context: ./
dockerfile: ./web-server/Dockerfile
args:
UID: ${UID}
GID: ${GID}
environment:
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672"
PRANKWEB_DATA_PREDICTIONS: "/data/prankweb/predictions/"
PRANKWEB_DATA_DOCKING: "/data/prankweb/docking/"
restart: unless-stopped
volumes:
- predictions:/data/prankweb/predictions
- docking:/data/prankweb/docking
depends_on:
rabbitmq:
condition: service_healthy
executor-p2rank:
build:
context: ./
dockerfile: ./executor-p2rank/Dockerfile
args:
UID: ${UID}
GID: ${GID}
command: ["celery", "--app=celery_p2rank", "worker", "--queues=p2rank", "--concurrency=4", "--hostname=executor-p2rank"]
depends_on:
rabbitmq:
condition: service_healthy
environment:
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672"
LOCK_DIRECTORY: "/data/prankweb/predictions/lock"
restart: unless-stopped
volumes:
- conservation:/data/conservation
- predictions:/data/prankweb/predictions
- docking:/data/prankweb/docking
executor-docking:
build:
context: ./
dockerfile: ./executor-docking/Dockerfile
args:
UID: ${UID}
GID: ${GID}
command: ["celery", "--app=celery_docking", "worker", "--queues=docking", "--concurrency=4", "--hostname=executor-docking"]
environment:
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672"
restart: unless-stopped
volumes:
- docking:/data/prankweb/docking
- predictions:/data/prankweb/predictions
depends_on:
rabbitmq:
condition: service_healthy
monitor:
build:
context: ./
dockerfile: ./monitor/Dockerfile
environment:
GOOGLE_ANALYTICS: ${MONITOR_GOOGLE_ANALYTICS}
restart: unless-stopped
prometheus:
build:
context: ./
dockerfile: ./prometheus/Dockerfile
volumes:
- services:/data
depends_on:
- flower
- rabbitmq
restart: unless-stopped
volumes:
rabbitmq:
external: True
name: prankweb_rabbitmq
conservation:
external: True
name: prankweb_conservation
predictions:
external: True
name: prankweb_predictions
services:
external: True
name: prankweb_services
docking:
external: True
name: prankweb_docking