-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
99 lines (96 loc) · 2.96 KB
/
docker-compose.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
services:
database:
image: mariadb:10.11.7
restart: always
environment:
- MYSQL_DATABASE=doko
- MYSQL_ROOT_PASSWORD=${DOKO_SQL_PASSWORD}
- MYSQL_PWD=${DOKO_SQL_PASSWORD}
volumes:
- ./packages/database/schema:/docker-entrypoint-initdb.d:ro
- ./mysql:/var/lib/mysql:rw
command:
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
ports:
- "3306:3306"
proxy:
image: traefik:3.0.0
restart: always
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
server:
image: node:20.12.2-bookworm
user: '1000:1000'
working_dir: /doko/packages/server
depends_on:
- database
volumes:
- ./:/doko:rw
environment:
- NODE_ENV=development
- LOGUX_HOST=0.0.0.0
- LOGUX_PORT=3030
- DB_HOST=database
- DB_PORT=3306
- DB_USER=root
- DB_PW=${DOKO_SQL_PASSWORD}
- DB_NAME=doko
entrypoint:
- "npm"
- "run"
- "dev"
labels:
traefik.enable: true
# http
traefik.http.routers.doko-ws.rule: "Path(`/ws`)"
traefik.http.routers.doko-ws.entrypoints: web
traefik.http.routers.doko-ws.priority: 200
traefik.http.routers.doko-ws.service: doko-ws
traefik.http.services.doko-ws.loadbalancer.server.port: 3030
# https
traefik.http.routers.doko-wss.rule: "Path(`/ws`)"
traefik.http.routers.doko-wss.entrypoints: websecure
traefik.http.routers.doko-wss.priority: 200
traefik.http.routers.doko-wss.service: doko-wss
traefik.http.routers.doko-wss.tls: 'true'
traefik.http.services.doko-wss.loadbalancer.server.port: 3030
client:
image: node:20.12.2-bookworm
user: '1000:1000'
working_dir: /doko/packages/client
environment:
- BROWSER=none # see https://github.com/facebook/create-react-app/issues/7251
- NODE_ENV=development
volumes:
- ./:/doko:rw
entrypoint:
- "npm"
- "run"
- "dev"
labels:
traefik.enable: true
# http
traefik.http.routers.doko-web.rule: "PathPrefix(`/`)"
traefik.http.routers.doko-web.entrypoints: web
traefik.http.routers.doko-web.priority: 100
traefik.http.routers.doko-web.service: doko-web
traefik.http.services.doko-web.loadbalancer.server.port: 3000
# https
traefik.http.routers.doko-webs.rule: "PathPrefix(`/`)"
traefik.http.routers.doko-webs.entrypoints: websecure
traefik.http.routers.doko-webs.priority: 100
traefik.http.routers.doko-webs.service: doko-webs
traefik.http.routers.doko-webs.tls: 'true'
traefik.http.services.doko-webs.loadbalancer.server.port: 3000