-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
129 lines (122 loc) · 4.67 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
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
version: '3'
services:
traefik:
image: traefik:v3.1
container_name: traefik
restart: always
ports:
- "80:80"
- "443:443"
# - "8080:8080" # Traefik 대시보드 포트
command:
# - "--api.insecure=true" # 웹 대시보드 활성화 (생산 환경에서는 보안을 설정해야 함)
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=zeropage@zeropage.org"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" # 스테이징 서버 (테스트용)
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
xpressengine:
build: ./xpressengine
container_name: xpressengine
restart: always
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.xpressengine.rule=Host(`zeropage.org`) || Host(`www.zeropage.org`)"
- "traefik.http.routers.xpressengine.entrypoints=websecure"
- "traefik.http.routers.xpressengine.tls.certresolver=myresolver"
volumes:
- /data/html/xpressengine:/var/www/html:ro
- /data/html/xpressengine/files:/var/www/html/files:rw
moniwiki:
image: zeropageorg_moniwiki:latest
container_name: moniwiki
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.moniwiki.rule=Host(`wiki.zeropage.org`)"
- "traefik.http.routers.moniwiki.entrypoints=websecure"
- "traefik.http.routers.moniwiki.tls.certresolver=myresolver"
volumes:
- /data/html/moniwiki:/var/www/html:ro
- /data/html/moniwiki/data:/var/www/html/data:rw
- /data/html/moniwiki/pds:/var/www/html/pds:rw
- /data/html/moniwiki/_cache:/var/www/html/_cache:rw
mattermost:
image: mattermost/mattermost-team-edition:9.5
container_name: mattermost
restart: always
depends_on:
- mysql-mattermost
ports:
- "8443:8443/udp"
- "8065:8065/udp"
security_opt:
- seccomp:unconfined
labels:
- "traefik.enable=true"
- "traefik.http.routers.mattermost.rule=Host(`chat.zeropage.org`) || Host(`chat.zp.ai`)"
- "traefik.http.routers.mattermost.entrypoints=websecure"
- "traefik.http.routers.mattermost.tls.certresolver=myresolver"
volumes:
- /data/html/mattermost/config:/mattermost/config:rw
- /data/html/mattermost/data:/mattermost/data:rw
- /data/html/mattermost/logs:/mattermost/logs:rw
- /data/html/mattermost/plugins:/mattermost/plugins:rw
- /data/html/mattermost/client/plugins:/mattermost/client/plugins:rw
- /data/html/mattermost/bleve-indexes:/mattermost/bleve-indexes:rw
environment:
- MM_SQLSETTINGS_DRIVERNAME=mysql
- MM_SQLSETTINGS_DATASOURCE
- MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes
db:
image: mariadb:10.3
container_name: mariadb
restart: always
user: "27:27"
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --skip-character-set-client-handshake
volumes:
- /var/lib/mysql:/var/lib/mysql:rw
environment:
- MYSQL_PASSWORD=${MM_MYSQL_PASSWORD}
mysql-mattermost:
image: mysql:8.0
container_name: mysql-mattermost
restart: always
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --skip-character-set-client-handshake --default-authentication-plugin=mysql_native_password
volumes:
- ./mysql-mattermost/etc/mysql/conf.d/mattermost-search.cnf:/etc/mysql/conf.d/mattermost-search.cnf:ro
- /var/lib/mysql_mattermost:/var/lib/mysql:rw
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_DATABASE=mattermost
- MYSQL_USER=mattermost
- MYSQL_PASSWORD=${MM_MYSQL_PASSWORD}
myadmin:
image: phpmyadmin/phpmyadmin
container_name: myadmin
restart: always
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.myadmin.rule=Host(`pma.zeropage.org`)"
- "traefik.http.routers.myadmin.entrypoints=websecure"
- "traefik.http.routers.myadmin.tls.certresolver=myresolver"
portal:
image: ghcr.io/zeropage/zp-portal-page:latest
ports:
- "3000:3000"
restart: always
container_name: portal
labels:
- "traefik.enable=true"
- "traefik.http.routers.portal.rule=Host(`portal.zeropage.org`)"
- "traefik.http.routers.portal.entrypoints=websecure"
- "traefik.http.routers.portal.tls.certresolver=myresolver"