-
Notifications
You must be signed in to change notification settings - Fork 2
/
production-docker-compose.yml
152 lines (136 loc) · 3.02 KB
/
production-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
144
145
146
147
148
149
150
151
152
version: '3.5'
networks:
backend_net:
driver: bridge
services:
db:
container_name: backend_sl_db
image: postgres:15.0-alpine
env_file:
- .env
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
restart: always
ports:
- '5432:5432'
volumes:
- postgres_data:/var/lib/postgresql/data/
networks:
- backend_net
app:
container_name: backend-sl
command: gunicorn backend_sl.wsgi:application --bind 0.0.0.0:8000
build:
context: ./backend_sl #
dockerfile: production.Dockerfile
restart: always
env_file:
- .env
environment:
- DJANGO_SETTINGS_MODULE=backend_sl.settings.production
ports:
- "8000:8000"
volumes:
- ./backend_sl/:/home/app/web/
- static_vol:/home/app/web/staticfiles
- media_vol:/home/app/web/mediafiles
networks:
- backend_net
depends_on:
- db
- redis
expose:
- 8000
redis:
container_name: backend_sl_redis
image: redis:alpine
restart: always
ports:
- '6379:6379'
networks:
- backend_net
expose:
- 6379
celery_worker:
container_name: backend_sl_celery_worker
restart: always
build:
context: ./backend_sl
dockerfile: production.Dockerfile
command: celery -A backend_sl worker --loglevel=info --logfile=logs/celery.log
volumes:
- ./backend_sl/:/home/app/web/
env_file:
- .env
environment:
- DJANGO_SETTINGS_MODULE=backend_sl.settings.production
depends_on:
- redis
- app
- db
networks:
- backend_net
celery_beat:
container_name: backend_sl_celery_beat
restart: always
build:
context: ./backend_sl
dockerfile: production.Dockerfile
command: celery -A backend_sl beat -l info
volumes:
- ./backend_sl/:/home/app/web/
env_file:
- .env
environment:
- DJANGO_SETTINGS_MODULE=backend_sl.settings.production
depends_on:
- redis
- app
- db
networks:
- backend_net
flower:
container_name: backend_sl_flower
restart: always
build:
context: ./backend_sl
dockerfile: production.Dockerfile
command: "celery -A backend_sl flower
--broker=redis://redis:6379//
--env-file=.env
--basic_auth=${FLOWER_USER}:${FLOWER_PASSWORD}"
ports:
- '5555:5555'
env_file:
- .env
environment:
- DJANGO_SETTINGS_MODULE=backend_sl.settings.production
depends_on:
- app
- redis
- db
- celery_worker
- celery_beat
networks:
- backend_net
expose:
- 5000
nginx:
container_name: backend_sl_nginx
restart: always
build: ./nginx
ports:
- "80:80"
networks:
- backend_net
volumes:
- static_vol:/home/app/web/staticfiles
- media_vol:/home/app/web/mediafiles
depends_on:
- app
volumes:
static_vol:
media_vol:
postgres_data: