-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
129 lines (119 loc) · 3.12 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
version: '3.9'
x-celery-common:
&celery-common
image: dense_review_backend_image
restart: always
working_dir: /app/backend/src
volumes:
- ./backend/:/app/backend/
- ./logs/:/app/backend/src/logs
- ./user-corpus:/app/backend/src/user-corpus
- /home/ubuntu/:/app/backend/src/app_utils/
env_file:
- ./backend/src/.env
depends_on:
rabbitmq:
condition: service_healthy
services:
# Nginx
frontend:
container_name: dense_review_frontend
image: nginx:1.26.2
restart: unless-stopped
ports:
- 80:80
- 443:443
env_file:
- ./backend/src/.env
volumes:
- ./frontend/dist:/var/www/dense_review
- ./nginx_conf.d/:/etc/nginx/conf.d/
- ./certs/:/etc/ssl/certs
- ./user-corpus:/mnt/user-corpus
# Backend
backend:
container_name: dense_review_backend
image: dense_review_backend_image
restart: unless-stopped
build:
context: ./backend
dockerfile: dockerfile
ports:
- 8001:8000
volumes:
- ./backend/:/app/backend/
- ./logs/:/app/backend/src/logs
- ./user-corpus:/app/backend/src/user-corpus
- /home/ubuntu/:/app/backend/src/app_utils/
env_file:
- ./backend/src/.env
depends_on:
- postgres_db
entrypoint: ["bash", "/app/entrypoint.sh"]
# Database
postgres_db:
container_name: dense_review_db
image: postgres:13.16
restart: unless-stopped
env_file:
- ./backend/src/.env
volumes:
- db_volume:/var/lib/postgresql/data
ports:
- 5432:5432
# Broker
rabbitmq:
container_name: dense_review_broker
image: rabbitmq:3.12.12-management
restart: always
ports:
- 5673:5672
- 15673:15672
volumes:
- ./backend/src/rabbitmq_plugins:/etc/rabbitmq/rabbitmq_plugins
- ./backend/src/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
healthcheck:
test: ["CMD", "rabbitmqctl", "status"]
interval: 5s
timeout: 10s
retries: 5
env_file:
- ./backend/src/.env
depends_on:
- backend
# Worker
celery_worker_1:
<<: *celery-common
container_name: dense_review_celery_worker_1
command: >
/bin/sh -c "celery -A dense_review worker --loglevel=info --logfile=/app/backend/src/logs/celery-worker-1.log -Q indexing_queue -c 1 -n celery-woker-1@%h;"
celery_worker_2:
<<: *celery-common
container_name: dense_review_celery_worker_2
command: >
/bin/sh -c "celery -A dense_review worker --loglevel=info --logfile=/app/backend/src/logs/celery-worker-2%I.log -Q re_ranking_queue -c 1 -n celery-woker-2@%h;"
# Websocket
websocket:
container_name: websocket_container
image: dense_review_backend_image
restart: unless-stopped
command: >
/bin/sh -c "cd /app/backend/src; python3 ws.py;"
ports:
- 8100:8100
volumes:
- ./backend/:/app/backend/
env_file:
- ./backend/src/.env
depends_on:
- redis
# Redis
redis:
container_name: redis_container
image: redis:7.4.1
restart: unless-stopped
expose:
- "6379"
volumes:
db_volume:
name: dense_review_db_volume