-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.release.yml
132 lines (126 loc) · 4.6 KB
/
docker-compose.release.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
124
125
126
127
128
129
130
131
132
version: '3.4'
services:
qpanc.api:
restart: always
container_name: qpanc_api
depends_on:
- qpanc.database
image: qpanc.azurecr.io/api:latest
ports:
- "34512:80"
volumes:
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
networks:
qpanc.network:
qpanc.internal:
ipv4_address: "172.18.18.3"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- ASPNETCORE_URLS=http://+:80
- DEFAULT_CONNECTION=Server=qpanc.database;Port=5432;Database=postgres;User Id=postgres;Password=keepitsupersecret;
- JWTBEARER_VALIDISSUER=https://api.qpanc.tobiasmesquita.dev/
- JWTBEARER_VALIDAUDIENCE=https://api.qpanc.tobiasmesquita.dev/
- JWTBEARER_ISSUERSIGNINGKEY=itUXC7iVRsofSDWNeg/aLYpc4bMzHAsMPzeItE1PQi2tMK2f4t0InRgTE5B/4IAjhAX5LQSIGL1CaUHSSzED8A==
- JWTBEARER_TOKENDECRYPTIONKEY=7hfboHG0d4GnXjVng0ukMo+IgrKKrPLUMtOvnt4S514=
- CORS_HOSTS__0=qpanc.tobiasmesquita.dev
labels:
- "traefik.enable=true"
- "traefik.http.services.qpanc_api.loadbalancer.server.port=80"
- "traefik.http.routers.qpanc_api.rule=Host(`api.qpanc.tobiasmesquita.dev`)"
- "traefik.http.routers.qpanc_api.entrypoints=web"
- "traefik.http.routers.qpanc_api.service=qpanc_api"
- "traefik.http.routers.qpanc_api-secure.rule=Host(`api.qpanc.tobiasmesquita.dev`)"
- "traefik.http.routers.qpanc_api-secure.tls=true"
- "traefik.http.routers.qpanc_api-secure.tls.certresolver=le"
- "traefik.http.routers.qpanc_api-secure.entrypoints=websecure"
- "traefik.http.routers.qpanc_api-secure.service=qpanc_api"
- "traefik.docker.network=external_network"
qpanc.app:
restart: always
container_name: qpanc_app
image: qpanc.azurecr.io/app:latest
ports:
- "34515:3000"
volumes:
- webapp:/app
networks:
qpanc.network:
qpanc.internal:
ipv4_address: "172.18.18.6"
labels:
- "traefik.enable=true"
- "traefik.http.services.qpanc_app.loadbalancer.server.port=3000"
- "traefik.http.routers.qpanc_app.rule=Host(`qpanc.tobiasmesquita.dev`)"
- "traefik.http.routers.qpanc_app.entrypoints=web"
- "traefik.http.routers.qpanc_app.service=qpanc_app"
- "traefik.http.routers.qpanc_app-secure.rule=Host(`qpanc.tobiasmesquita.dev`)"
- "traefik.http.routers.qpanc_app-secure.tls=true"
- "traefik.http.routers.qpanc_app-secure.tls.certresolver=le"
- "traefik.http.routers.qpanc_app-secure.entrypoints=websecure"
- "traefik.http.routers.qpanc_app-secure.service=qpanc_app"
- "traefik.docker.network=external_network"
qpanc.database:
restart: always
image: postgres:latest
ports:
- "34514:5432"
volumes:
- database:/var/lib/postgresql/database
networks:
qpanc.network:
qpanc.internal:
ipv4_address: "172.18.18.9"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: keepitsupersecret
POSTGRES_DB: postgres
traefik:
container_name: traefik
image: traefik:latest
depends_on:
- qpanc.app
- qpanc.api
networks:
qpanc.network:
qpanc.internal:
ipv4_address: "172.18.18.12"
command:
- "--api=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.traefik.address=:8080"
- "--certificatesResolvers.le.acme.email=tobias.mesquita@gmail.com"
- "--certificatesResolvers.le.acme.storage=acme.json"
- "--certificatesResolvers.le.acme.tlsChallenge=true"
- "--certificatesResolvers.le.acme.httpChallenge=true"
- "--certificatesResolvers.le.acme.httpChallenge.entryPoint=web"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/acme.json:/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.qpanc.tobiasmesquita.dev`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=admin"
- "traefik.http.routers.traefik.tls.certresolver=le"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.middlewares.admin.basicauth.users=qpanc:$$apr1$$U0UpF78N$$3AxgB876rR09fJ5OuylKk/"
volumes:
webapp:
database:
networks:
qpanc.internal:
internal: true
driver: bridge
ipam:
driver: default
config:
- subnet: 172.18.18.0/24
qpanc.network: