-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.prod.yml
123 lines (114 loc) · 3.81 KB
/
docker-compose.prod.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
version: "3.9"
services:
# TODO Deploy following app services via docker-compose.
# Currently, they are deployed directly on the serve in ansible deployment scripts.
# backend:
# depends_on:
# - db
# - redis
# env_file:
# - .env
# environment:
# - PORT=5000
# build:
# context: ./backend
# dockerfile: backend.dockerfile
# command: /start.sh
# worker:
# depends_on:
# - db
# - redis
# env_file:
# - .env
# build:
# context: ./backend
# dockerfile: worker.dockerfile
# frontend:
# depends_on:
# - backend
# # env_file:
# # -
# build:
# context: ./frontend
# dockerfile: Dockerfile
db:
image: postgres:13
volumes:
- bilolok-db-data-prod:/var/lib/postgresql/data/pgdata
- /tmp/backups/db:/backups
env_file:
- .env
environment:
- PGDATA=/var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
redis:
image: redis:6
env_file:
- .env
ports:
- "6379:6379"
tusd:
image: tusproject/tusd
ports:
- "8070:8070"
volumes:
- "${DATA_LOCAL_DIR}/uploads/:/data/"
env_file:
- .env
command: -port 8070 -upload-dir /data/ -behind-proxy -hooks-http https://api.bilolok.com/api/v1/tus-hook -hooks-http-forward-headers authorization -hooks-enabled-events pre-create,post-finish
thumbor:
image: minimalcompact/thumbor
volumes:
- "${DATA_LOCAL_DIR}/:/data/uploads/"
env_file:
- .env
environment:
# VIRTUAL_HOST is picked up by nginx-proxy. Here it's set for localhost
# but you usually need to point it to your domain, e.g. thumbor.example.com
- VIRTUAL_HOST=image.bilolok.com
# THUMBOR_NUM_PROCESSES control how many processes run inside the container
# Normally this is set in connection with the number of CPU cores
# Note however that you can also use the docker-compose scale option to dynamically
# scale your thumbor instances
- THUMBOR_NUM_PROCESSES=1
# this would allow CORS from any origin (you can restrict to specific origins if you want)
- CORS_ALLOW_ORIGIN=*
# returns a webp image if browser Accept headers match
- AUTO_WEBP=True
# nginx-proxy does caching automatically, so no need to store the result storage cache
# (this greatly speeds up and saves on CPU)
- RESULT_STORAGE=thumbor.result_storages.no_storage
- RESULT_STORAGE_STORES_UNSAFE=True
- STORAGE=thumbor.storages.file_storage
### My modifications from original recipe
- ALLOW_UNSAFE_URL=False
- SECURITY_KEY=${THUMBOR_SECURITY_KEY}
- LOADER=thumbor.loaders.file_loader
- FILE_LOADER_ROOT_PATH=/data/uploads/
restart: always
nginx-proxy:
image: minimalcompact/thumbor-nginx-proxy-cache
environment:
# setting the DEFAULT_HOST to the same as the VIRTUAL_HOST above.
# Makes sure it works irrespective of the host name
# Normally this won't be necessary, but it helps for testing.
- DEFAULT_HOST=image.bilolok.com
# optional: control cache memory size (default 500m), cache size (default 10g) and inactive (default 300m)
# see https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path
- PROXY_CACHE_SIZE=10g
- PROXY_CACHE_MEMORY_SIZE=500m
- PROXY_CACHE_INACTIVE=168h
volumes:
# this is essential for nginx-proxy to detect docker containers, scaling etc
# see https://github.com/jwilder/nginx-proxy
- /var/run/docker.sock:/tmp/docker.sock:ro
# mapping cache folder, to persist it independently of the container
- bilolok-img-cache-data-prod:/var/cache/nginx
ports:
- "8888:80"
# - "4443:4443"
restart: always
volumes:
bilolok-db-data-prod:
bilolok-img-cache-data-prod: