-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
149 lines (140 loc) · 4.65 KB
/
docker-compose.prod.yml
File metadata and controls
149 lines (140 loc) · 4.65 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
141
142
143
144
145
146
147
148
149
services:
ui:
image: <dockerhub_namespace>/my-solid-app-ui:stable
container_name: my-solid-app-ui
volumes:
- '/var/www/certbot:/var/www/certbot'
- '/etc/letsencrypt/:/etc/letsencrypt/'
- '/home/${MY_SOLID_APP_SERVER_USER}/nginx.prod.conf:/etc/nginx/conf.d/default.conf:ro'
ports:
- '80:80'
- '443:443'
networks:
- my-solid-app-network
depends_on:
- api
logging:
driver: 'json-file'
options:
max-size: '5m'
max-file: '10'
api:
image: <dockerhub_namespace>/my-solid-app-api:stable
container_name: my-solid-app-api
environment:
MY_SOLID_APP_FRONTEND_URL: https://app.my-solid-app.com
MY_SOLID_APP_API_URL: https://api.my-solid-app.com
MY_SOLID_APP_SECRET_KEY: $MY_SOLID_APP_SECRET_KEY
MY_SOLID_APP_FERNET_SECRET_KEY: $MY_SOLID_APP_FERNET_SECRET_KEY
MY_SOLID_APP_DB_NAME: $MY_SOLID_APP_DB_NAME
MY_SOLID_APP_DB_USER: $MY_SOLID_APP_DB_USER
MY_SOLID_APP_DB_PASSWORD: $MY_SOLID_APP_DB_PASSWORD
MY_SOLID_APP_DB_HOST: 'db'
MY_SOLID_APP_DB_PORT: '3306'
MY_SOLID_APP_REDIS_HOST: 'redis'
MY_SOLID_APP_MAIL_SERVER: $MY_SOLID_APP_MAIL_SERVER
MY_SOLID_APP_MAIL_PORT: $MY_SOLID_APP_MAIL_PORT
MY_SOLID_APP_MAIL_USE_SSL: 'True'
MY_SOLID_APP_MAIL_USERNAME: $MY_SOLID_APP_MAIL_USERNAME
MY_SOLID_APP_MAIL_PASSWORD: $MY_SOLID_APP_MAIL_PASSWORD
MY_SOLID_APP_MAIL_DEFAULT_SENDER: $MY_SOLID_APP_MAIL_DEFAULT_SENDER
MY_SOLID_APP_PASSWORD_RESET_TOKEN_EXPIRE_HOURS: 1
MY_SOLID_APP_MOLLIE_API_KEY: $MY_SOLID_APP_MOLLIE_API_KEY
MY_SOLID_APP_MINIO_HOST: $MY_SOLID_APP_MINIO_HOST
MY_SOLID_APP_MINIO_PORT: $MY_SOLID_APP_MINIO_PORT
MY_SOLID_APP_MINIO_USER: $MY_SOLID_APP_MINIO_USER
MY_SOLID_APP_MINIO_PASSWORD: $MY_SOLID_APP_MINIO_PASSWORD
MY_SOLID_APP_MINIO_BUCKET: $MY_SOLID_APP_MINIO_BUCKET
MY_SOLID_APP_MINIO_SECURE: 'True'
networks:
- my-solid-app-network
depends_on:
- db
logging:
driver: 'json-file'
options:
max-size: '5m'
max-file: '5'
tasks:
image: <dockerhub_namespace>/my-solid-app-tasks:stable
container_name: my-solid-app-tasks
environment:
MY_SOLID_APP_FRONTEND_URL: https://app.my-solid-app.com
MY_SOLID_APP_API_URL: https://api.my-solid-app.com
MY_SOLID_APP_SECRET_KEY: $MY_SOLID_APP_SECRET_KEY
MY_SOLID_APP_FERNET_SECRET_KEY: $MY_SOLID_APP_FERNET_SECRET_KEY
MY_SOLID_APP_DB_NAME: $MY_SOLID_APP_DB_NAME
MY_SOLID_APP_DB_USER: $MY_SOLID_APP_DB_USER
MY_SOLID_APP_DB_PASSWORD: $MY_SOLID_APP_DB_PASSWORD
MY_SOLID_APP_DB_HOST: 'db'
MY_SOLID_APP_DB_PORT: '3306'
MY_SOLID_APP_REDIS_HOST: 'redis'
MY_SOLID_APP_MAIL_SERVER: $MY_SOLID_APP_MAIL_SERVER
MY_SOLID_APP_MAIL_PORT: $MY_SOLID_APP_MAIL_PORT
MY_SOLID_APP_MAIL_USE_SSL: 'True'
MY_SOLID_APP_MAIL_USERNAME: $MY_SOLID_APP_MAIL_USERNAME
MY_SOLID_APP_MAIL_PASSWORD: $MY_SOLID_APP_MAIL_PASSWORD
MY_SOLID_APP_MAIL_DEFAULT_SENDER: $MY_SOLID_APP_MAIL_DEFAULT_SENDER
MY_SOLID_APP_MOLLIE_API_KEY: $MY_SOLID_APP_MOLLIE_API_KEY
networks:
- my-solid-app-network
depends_on:
- redis
- db
logging:
driver: 'json-file'
options:
max-size: '5m'
max-file: '5'
db:
image: mariadb:latest
container_name: my-solid-app-mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
MYSQL_DATABASE: $MY_SOLID_APP_DB_NAME
MYSQL_USER: $MY_SOLID_APP_DB_USER
MYSQL_PASSWORD: $MY_SOLID_APP_DB_PASSWORD
volumes:
- db_data_prod:/var/lib/mysql
networks:
- my-solid-app-network
logging:
driver: 'json-file'
options:
max-size: '5m'
max-file: '5'
redis:
image: redis:latest
container_name: my-solid-app-redis
command: redis-server --appendonly yes
volumes:
- redis_data_prod:/data
networks:
- my-solid-app-network
logging:
driver: 'json-file'
options:
max-size: '5m'
max-file: '5'
certbot:
image: certbot/certbot:latest
container_name: my-solid-app-certbot
volumes:
- '/var/www/certbot:/var/www/certbot'
- '/var/lib/letsencrypt/:/var/lib/letsencrypt/'
- '/etc/letsencrypt/:/etc/letsencrypt/'
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot -v; sleep 12h & wait $${!}; done;'"
networks:
- my-solid-app-network
logging:
driver: 'json-file'
options:
max-size: '1m'
max-file: '3'
networks:
my-solid-app-network:
driver: bridge
volumes:
db_data_prod:
redis_data_prod: