-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yml
More file actions
140 lines (129 loc) · 3.28 KB
/
Copy pathcompose.yml
File metadata and controls
140 lines (129 loc) · 3.28 KB
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
version: '3'
services:
nginx:
container_name: nginx
build:
context: .
dockerfile: ./nginx/Dockerfile
ports:
- 80:80
- 443:443
restart: always
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
- ./static:/usr/share/nginx/html
depends_on:
- backend
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
networks:
- mynetwork
certbot:
container_name: certbot
image: certbot/certbot
restart: unless-stopped
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- nginx
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
backend:
container_name: backend
build: ./Backend
restart: always
command: sh -c "python manage.py migrate && test -d static || mkdir static && python manage.py collectstatic --noinput && gunicorn -w 2 -k uvicorn.workers.UvicornWorker 'giterview.asgi:application' --bind=0.0.0.0:8000 --reload"
ports:
- 8000:8000
env_file:
- ./.env
networks:
- mynetwork
volumes:
- shared_volume:/tmp
rabbit:
container_name: rabbitmq
image: rabbitmq:3-management
hostname: rabbit
environment:
- RABBITMQ_USER=guest
- RABBITMQ_PASSWORD=guest
ports:
- 5672:5672
- 15672:15672
networks:
- mynetwork
celery:
container_name: celery_worker
build: ./Backend
command: sh -c "celery -A celery_worker worker -l info"
depends_on:
- rabbit
- redis
env_file:
- ./.env
networks:
- mynetwork
volumes:
- ./Backend/celery_worker:/usr/src/app/celery_worker
- shared_volume:/tmp
redis:
container_name: redis
image: redis:latest
hostname: redis
networks:
- mynetwork
node_exporter:
container_name: node_exporter
image: prom/node-exporter:latest
command:
- '--path.rootfs=/host'
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- --collector.filesystem.ignored-mount-points
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
ports:
- "9100:9100"
networks:
- mynetwork
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
prometheus:
container_name: prometheus
image: prom/prometheus:latest
user: root
ports:
- 9090:9090
volumes:
- ./monitor/prometheus/config/:/etc/prometheus/
- ./monitor/prometheus/volume:/prometheus
command:
- '--web.enable-lifecycle'
- '--config.file=/etc/prometheus/prometheus.yml'
restart: always
depends_on:
- backend
- node_exporter
networks:
- mynetwork
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- 3000:3000
depends_on:
- prometheus
volumes:
- ./monitor/grafana:/var/lib/grafana
restart: always
networks:
- mynetwork
networks:
mynetwork:
driver: bridge
volumes:
shared_volume: