-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.traefik.yml
More file actions
100 lines (92 loc) · 2.94 KB
/
docker-compose.traefik.yml
File metadata and controls
100 lines (92 loc) · 2.94 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
version: "3.7"
services:
# Website
web:
build:
context: .
dockerfile: Dockerfile.prod
restart: unless-stopped
env_file: .env.production
networks:
- web
- backend
depends_on:
- db
- cms
labels:
- "traefik.enable=true"
- "traefik.http.routers.arapiles-web.rule=Host(`uqmc.org`) || Host(`www.uqmc.org`)"
- "traefik.http.routers.arapiles-web.entrypoints=web"
- "traefik.http.routers.arapiles-web.middlewares=redirect@file"
- "traefik.http.routers.arapiles-secured.rule=Host(`uqmc.org`) || Host(`www.uqmc.org`)"
- "traefik.http.routers.arapiles-secured.entrypoints=web-secured"
- "traefik.http.routers.arapiles-secured.tls.certresolver=mytlschallenge"
- "traefik.http.services.arapiles.loadbalancer.server.port=9000"
environment:
WAIT_HOSTS: cms:1337 # Utilise compose-wait (defined in Dockerfile) to wait for TCP connections to be accepted by the CMS on 1337 before attempting to start frontend.
# Content management system
cms:
image: strapi/strapi
restart: unless-stopped
env_file: .env.production
depends_on:
- db
networks:
- backend
- web
volumes:
- ./STRAPI_APP_CONTENT:/srv/app
labels:
- "traefik.enable=true"
- "traefik.http.routers.cms-web.rule=Host(`cms.uqmc.org`)"
- "traefik.http.routers.cms-web.entrypoints=web"
- "traefik.http.routers.cms-web.middlewares=redirect@file"
- "traefik.http.routers.cms-secured.rule=Host(`cms.uqmc.org`)"
- "traefik.http.routers.cms-secured.entrypoints=web-secured"
- "traefik.http.routers.cms-secured.tls.certresolver=mytlschallenge"
- "traefik.http.services.cms.loadbalancer.server.port=1337"
# Automated backup of Redis image to S3 object storage
backup:
image: pants1/docker-volume-backup
restart: on-failure
env_file: .env.production
volumes:
- /var/lib/docker/volumes/:/HostVolumeData
depends_on:
- db
# Web GUI for MongoDB
db-viewer:
image: mongo-express
depends_on:
- db
restart: unless-stopped
env_file: .env.production
networks:
- backend
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.db-viewer-web.rule=Host(`db.uqmc.org`)"
- "traefik.http.routers.db-viewer-web.entrypoints=web"
- "traefik.http.routers.db-viewer-web.middlewares=redirect@file"
- "traefik.http.routers.db-viewer-secured.rule=Host(`db.uqmc.org`)"
- "traefik.http.routers.db-viewer-secured.entrypoints=web-secured"
- "traefik.http.routers.db-viewer-secured.tls.certresolver=mytlschallenge"
- "traefik.http.services.db-viewer.loadbalancer.server.port=8081"
# Database
db:
image: mongo
restart: unless-stopped
env_file: .env.production
networks:
- backend
volumes:
- db-data:/data/db
volumes:
# Database persistance
db-data:
networks:
web:
external: true
backend:
external: false