-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdocker-compose.yaml
73 lines (65 loc) · 2.81 KB
/
docker-compose.yaml
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
# this is the base docker compose
#
# run production stack (arenaxr; extend docker-compose.yaml):
# docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
#
# run staging stack (dev1; extend docker-compose.yaml):
# docker-compose -f docker-compose.yaml -f docker-compose.staging.yaml up -d
#
# run local development stack (does not extend docker-compose.yaml):
# docker-compose -f docker-compose.localdev.yaml up -d
#
# run demo stack (does not extend docker-compose.yaml):
# docker-compose -f docker-compose.demo.yaml up -d
version: '3'
services:
arena-web: # create a container named "arena-web"; other service containers in this file can resolve its name (arena-web)
volumes:
- ./data/certbot/conf:/etc/letsencrypt:ro # mount certbot files (used in conf/nginx-conf.d/arena-web.conf)
- ./data/certbot/www:/var/www/certbot:ro # mount certbot files (used in conf/nginx-conf.d/arena-web.conf)
depends_on:
- mqtt
- arena-persist
- store
- arena-account
mongodb:
volumes:
- ./data/mongodb:/data/db:rw # permanent storage on the host
- ./data/backup:/backup:rw # backup storage on the host
arena-persist:
user: "node"
volumes:
- ./conf/persist-config.json:/home/node/app/config.json:ro # mount updated config.json that uses the container name
- ./data/keys/jwt.public.pem:/home/node/app/pubsubkey.pub:ro # pubsub public key available to service
command: "npm run start"
depends_on:
- mongodb
- mqtt
arena-account:
volumes:
- ./conf/account-settings.py:/usr/src/app/arena_account/settings.py:ro
- account-static-content:/usr/src/app/static # static content
- ./data/account:/usr/src/app/db # account db
- ./data/keys/jwt.priv.pem:/home/node/app/pubsubkey.pem:ro # pubsub key available to service
env_file:
- .env
- secret.env
depends_on:
- arena-persist
command: "python manage.py runserver 0.0.0.0:8000"
mqtt:
volumes:
- ./conf/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro # mount local config file to /mosquitto/config/mosquitto.conf in the container
- ./data/keys/jwt.public.der:/pubsubkey.der:ro # pubsub key available to service
- ./data/certbot/conf:/etc/letsencrypt:ro # mount certs volume (see conf/mosquitto.conf to see how the files are used)
ports:
- 8083:8083/tcp # mqtt-wss
- 8883:8883/tcp # mqtt-tls
store:
image: "filebrowser/filebrowser:latest" # pulls from https://hub.docker.com/r/filebrowser/filebrowser
volumes:
- ./conf/store-config.json:/.filebrowser.json:ro
- ./store-branding:/arena-store/frontend/arena-branding:ro
- ./store:/srv-files:rw
- ./data/arena-store:/arena-store/data:rw
restart: unless-stopped # service will respawn unless we tell docker to stop it