-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproduction.yml
78 lines (72 loc) · 1.94 KB
/
production.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
version: "3.4"
services:
nginx:
build:
context: ./
dockerfile: mysite-nginx
image: mysite-nginx:lastest
ports:
- "80:8080"
- "443:8080"
depends_on:
- web
volumes:
- nginx_logs:/opt/logs/mysite/nginx
filebeat:
build:
context: ./
dockerfile: mysite-filebeat
volumes:
- /var/lib/docker/volumes/mysite-app-logs-1/_data:/opt/logs/mysite/app/1
- /var/lib/docker/volumes/mysite-app-logs-2/_data:/opt/logs/mysite/app/2
- /var/lib/docker/volumes/mysite-nginx-logs/_data:/opt/logs/mysite/nginx
image: mysite-filebeat:latest
web:
build:
context: ./
dockerfile: mysite-server
image: mysite-server:master
deploy:
replicas: 2
restart_policy:
condition: on-failure
volumes:
- app_logs:/opt/logs/mysite/app
- media:/opt/media/mysite
working_dir: "/opt/projects/mysite-server"
depends_on:
- db
environment:
RUN_ENV: DOCKER
command: "/opt/py_virtualenvs/mysite/bin/gunicorn --bind 0.0.0.0:8000 --error-logfile /opt/logs/mysite/app/gunicorn_error.log --workers 4 --max-requests 1000000 --max-requests-jitter 1000 --limit-request-line 4096 mysite.docker.wsgi"
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8
restart: always
ports:
- "127.0.0.1:3406:3306"
environment:
MYSQL_DATABASE: mysite
MYSQL_USER: docker
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_PASSWORD_FILE: /run/secrets/db_password
volumes:
- db_data:/var/lib/mysql
deploy:
placement:
constraints: [node.role == manager]
secrets:
- db_root_password
- db_password
volumes:
app_logs:
name: 'mysite-app-logs-{{.Task.Slot}}'
nginx_logs:
name: 'mysite-nginx-logs'
db_data:
media:
secrets:
db_root_password:
external: true
db_password:
external: true