-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.example.yml
114 lines (106 loc) · 2.98 KB
/
docker-compose.example.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
version: '3.9'
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.docker/config.json:/config.json
command: --interval 30
networks:
- proxy
traefik:
image: traefik:v2.9
ports:
- target: 22
published: 22
protocol: tcp
mode: host
- target: 80
published: 80
protocol: tcp
mode: host
- target: 443
published: 443
protocol: tcp
mode: host
networks:
- proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/containers/traefik/data/acme.json:/acme.json
command:
- --providers.docker=true
- --providers.docker.network=proxy
- --providers.docker.exposedByDefault=false
- --entryPoints.web.address=:80
- --entryPoints.web.http.redirections.entryPoint.to=websecure
- --entryPoints.web.http.redirections.entryPoint.scheme=https
- --entryPoints.websecure.address=:443
- --entryPoints.websecure.http.tls=true
- --entryPoints.websecure.http.tls.certResolver=myresolver
- --entryPoints.tcp222.address=:222
- --api.dashboard=true
- --log.level=DEBUG
- --accesslog=true
- --certificatesResolvers.myresolver.acme.email=<mail>
- --certificatesResolvers.myresolver.acme.storage=/acme.json
- --certificatesresolvers.myresolver.acme.tlschallenge=true
labels:
- traefik.enable=true
- traefik.http.routers.dashboard.entrypoints=websecure
- traefik.http.routers.dashboard.rule=Host(`<domain>`)
- traefik.http.routers.dashboard.tls.certresolver=myresolver
- traefik.http.routers.dashboard.service=api@internal
- traefik.http.routers.dashboard.middlewares=myauth
- traefik.http.middlewares.auth.basicauth.users=<user>:<hashedpassword>
mongodb:
image: mongo:6
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME: <user>
- MONGO_INITDB_ROOT_PASSWORD: <password>
- MONGO_INITDB_DATABASE: <db>
volumes:
- database:/data/db
networks:
- proxy
redis:
image: redis:6-alpine
restart: always
command: redis-server --save 20 1 --loglevel warning --requirepass <password>
volumes:
- cache:/data
networks:
- proxy
quart:
image: <dockerimage>
restart: always
depends_on:
- mongodb
- redis
env_file: /opt/containers/quart/.env
labels:
- traefik.enable=true
- traefik.docker.network=proxy
- traefik.http.routers.quart.entrypoints=websecure
- traefik.http.routers.quart.rule=Host(`<domain>`)
- traefik.http.services.quart.loadbalancer.server.port=5000
networks:
- proxy
arq:
image: <dockerimage>
restart: always
depends_on:
- mongodb
- redis
env_file: /opt/containers/arq/.env
networks:
- proxy
networks:
proxy:
name: proxy
volumes:
database:
driver: local
cache:
driver: local