docker-compose.yaml
10.5 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
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
name: ruoyi-vue-pro
volumes:
mysql: { }
postgres: { }
sqlserver: { }
dm8: { }
kingbase: { }
opengauss: { }
highgo: { }
oceanbase: { }
oceanbase_config: { }
tidb_pd: { }
tidb_tikv: { }
mogdb: { }
services:
mysql:
image: mysql:8.0.33
restart: unless-stopped
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: ruoyi-vue-pro
ports:
- "3306:3306"
volumes:
- mysql:/var/lib/mysql/
# 注入初始化脚本
- ./mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/init.sql:ro
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
postgres:
image: postgres:14.2
restart: unless-stopped
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: 123456
POSTGRES_DB: ruoyi-vue-pro
ports:
- "5432:5432"
volumes:
- postgres:/var/lib/postgresql/data
# 注入初始化脚本
- ../postgresql/quartz.sql:/docker-entrypoint-initdb.d/quartz.sql:ro
- ../postgresql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
oracle:
image: gvenzl/oracle-xe:18-slim-faststart
restart: unless-stopped
environment:
## 登录信息 SID: XE user: system password: oracle
ORACLE_PASSWORD: oracle
ports:
- "1521:1521"
volumes:
- ../oracle/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
# 创建app用户: ROOT/123456@//localhost/XEPDB1
- ./oracle/1_create_user.sql:/docker-entrypoint-initdb.d/1_create_user.sql:ro
- ./oracle/2_create_schema.sh:/docker-entrypoint-initdb.d/2_create_schema.sh:ro
oracle_m1:
image: einslib/oracle-19c:19.3.0-ee-slim-faststart
restart: unless-stopped
environment:
## 登录信息 SID: FREE user: system password: oracle
ORACLE_PASSWORD: oracle
ports:
- "1521:1521"
volumes:
- ../oracle/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
# 创建app用户: ROOT/123456@//localhost/XEPDB1
- ./oracle/1_create_user.sql:/docker-entrypoint-initdb.d/1_create_user.sql:ro
- ./oracle/2_create_schema.sh:/docker-entrypoint-initdb.d/2_create_schema.sh:ro
sqlserver:
image: mcr.microsoft.com/mssql/server:2017-latest
restart: unless-stopped
environment:
TZ: Asia/Shanghai
ACCEPT_EULA: "Y"
SA_PASSWORD: "Yudao@2024"
ports:
- "1433:1433"
volumes:
- sqlserver:/var/opt/mssql
- ../sqlserver/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
# docker compose exec sqlserver bash /tmp/create_schema.sh
- ./sqlserver/create_schema.sh:/tmp/create_schema.sh:ro
dm8:
# docker load -i dm8_20240715_x86_rh6_rq_single.tar
image: dm8_single:dm8_20240715_rev232765_x86_rh6_64
restart: unless-stopped
environment:
PAGE_SIZE: 16
LD_LIBRARY_PATH: /opt/dmdbms/bin
EXTENT_SIZE: 32
BLANK_PAD_MODE: 1
LOG_SIZE: 1024
UNICODE_FLAG: 1
LENGTH_IN_CHAR: 1
INSTANCE_NAME: dm8_test
ports:
- "5236:5236"
volumes:
- dm8:/opt/dmdbms/data
- ../dm/ruoyi-vue-pro-dm8.sql:/tmp/schema.sql:ro
kingbase:
image: kingbase_v009r001c001b0025_single_x86:v1
# image: kingbase_v009r001c001b0025_single_arm:v1
restart: unless-stopped
environment:
DB_USER: root
DB_PASSWORD: 123456
ports:
- "54321:54321"
volumes:
- kingbase:/home/kingbase/userdata
- ../kingbase/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
opengauss:
image: opengauss/opengauss:5.0.0
restart: unless-stopped
environment:
GS_USERNAME: root
GS_PASSWORD: Yudao@2024
LD_LIBRARY_PATH: /usr/local/opengauss/lib:/usr/lib
ports:
- "5432:5432"
volumes:
- opengauss:/var/lib/opengauss
- ../opengauss/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
# docker compose exec opengauss bash -c '/usr/local/opengauss/bin/gsql -U $GS_USERNAME -W $GS_PASSWORD -d postgres -f /tmp/schema.sql'
highgo:
# 使用瀚高官方提供的 Docker 镜像,加载后打成本地标签:
# docker tag <image>:<tag> highgo:local
image: highgo:local
profiles: ["highgo"]
restart: unless-stopped
ports:
- "5866:5866"
volumes:
- highgo:/home/highgo/hgdb/data
- ../highgo/quartz.sql:/tmp/quartz.sql:ro
- ../highgo/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
# 瀚高初始化:使用 PostgreSQL 客户端创建 ruoyi-vue-pro 数据库并导入 sql/highgo 脚本,只允许创建全新数据库
# 只支持 PostgreSQL 客户端可用的认证方式(例如 md5、scram-sha-256),SM3 等专有认证请使用瀚高客户端手动导入
# 执行:HIGHGO_PASSWORD='数据库密码' docker compose run --rm highgo-init
highgo-init:
image: postgres:14.2
profiles: ["highgo-init"]
restart: "no"
environment:
HIGHGO_HOST: ${HIGHGO_HOST:-highgo}
HIGHGO_PORT: ${HIGHGO_PORT:-5866}
HIGHGO_USER: ${HIGHGO_USER:-highgo}
HIGHGO_PASSWORD: ${HIGHGO_PASSWORD:-}
HIGHGO_MAINTENANCE_DB: ${HIGHGO_MAINTENANCE_DB:-highgo}
HIGHGO_DATABASE: ruoyi-vue-pro
entrypoint: ["bash", "/tmp/create_schema.sh"]
volumes:
- ../highgo/quartz.sql:/tmp/quartz.sql:ro
- ../highgo/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
- ./highgo/create_schema.sh:/tmp/create_schema.sh:ro
oceanbase:
image: oceanbase/oceanbase-ce:4.4.2-lts
restart: unless-stopped
environment:
MODE: mini
OB_MEMORY_LIMIT: 6G
OB_TENANT_MEMORY_SIZE: 3G
OB_TENANT_MIN_CPU: 2
OB_TENANT_LOG_DISK_SIZE: 2G
OB_TENANT_NAME: test
OB_TENANT_PASSWORD: "123456"
ports:
- "2881:2881"
volumes:
- oceanbase:/root/ob
- oceanbase_config:/root/.obd/cluster
- ../oceanbase/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
- ../oceanbase/quartz.sql:/tmp/quartz.sql:ro
- ./oceanbase/create_schema.sh:/tmp/create_schema.sh:ro
healthcheck:
test: ["CMD-SHELL", "MYSQL_PWD=$$OB_TENANT_PASSWORD obclient -h127.0.0.1 -P2881 -uroot@$$OB_TENANT_NAME -e 'SELECT 1' >/dev/null 2>&1"]
interval: 10s
timeout: 5s
start_period: 120s
retries: 30
# TiDB 测试集群:PD、TiKV、TiDB 各 1 个节点,属于 tidb profile,默认不启动
# 启动:docker compose up -d --wait --wait-timeout 300 tidb
tidb-pd:
image: pingcap/pd:v8.5.8
profiles: ["tidb"]
restart: unless-stopped
command:
- --name=pd
- --client-urls=http://0.0.0.0:2379
- --peer-urls=http://0.0.0.0:2380
- --advertise-client-urls=http://tidb-pd:2379
- --advertise-peer-urls=http://tidb-pd:2380
- --initial-cluster=pd=http://tidb-pd:2380
- --data-dir=/data/pd
- --config=/pd.toml
volumes:
- tidb_pd:/data
- ./tidb/pd.toml:/pd.toml:ro
tidb-tikv:
image: pingcap/tikv:v8.5.8
profiles: ["tidb"]
restart: unless-stopped
command:
- --addr=0.0.0.0:20160
- --advertise-addr=tidb-tikv:20160
- --status-addr=0.0.0.0:20180
- --advertise-status-addr=tidb-tikv:20180
- --data-dir=/data/tikv
- --pd=tidb-pd:2379
- --config=/tikv.toml
volumes:
- tidb_tikv:/data
- ./tidb/tikv.toml:/tikv.toml:ro
depends_on:
- tidb-pd
tidb:
image: pingcap/tidb:v8.5.8
profiles: ["tidb"]
restart: unless-stopped
environment:
TZ: Asia/Shanghai
command:
- --store=tikv
- --path=tidb-pd:2379
- --advertise-address=tidb
ports:
# 只绑定本机,root 密码由 tidb-init 初始化
- "127.0.0.1:4000:4000"
depends_on:
- tidb-tikv
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:10080/status >/dev/null"]
interval: 10s
timeout: 5s
start_period: 60s
retries: 30
# TiDB 初始化:设置 root 密码,创建 ruoyi-vue-pro 数据库并导入 MySQL 脚本,只允许创建全新数据库
# 执行:docker compose run --rm tidb-init
tidb-init:
image: mysql:8.0.33
profiles: ["tidb-init"]
restart: "no"
environment:
TIDB_HOST: tidb
TIDB_PORT: 4000
TIDB_DATABASE: ruoyi-vue-pro
TIDB_PASSWORD: "123456"
entrypoint: ["bash", "/tmp/create_schema.sh"]
volumes:
- ../mysql/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
- ../mysql/quartz.sql:/tmp/quartz.sql:ro
- ./tidb/create_schema.sh:/tmp/create_schema.sh:ro
# MogDB 测试库:云和恩墨官方容器镜像(仅用于测试),属于 mogdb profile,默认不启动
# 启动:docker compose up -d mogdb
# 初始化:docker compose exec -u omm mogdb bash /tmp/create_schema.sh(创建 PG 兼容模式的 ruoyi-vue-pro 数据库,并导入 sql/opengauss 脚本)
mogdb:
image: swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:5.0.0
profiles: ["mogdb"]
restart: unless-stopped
shm_size: 1g
environment:
# omm 超级用户、mogdb 用户的密码:至少 8 位,包含大小写字母、数字及特殊字符
GS_PASSWORD: Yudao@2024
ports:
# 只绑定本机,应用使用 mogdb 用户连接(omm 初始用户不允许远程连接)
- "127.0.0.1:15432:5432"
volumes:
- mogdb:/var/lib/mogdb
- ../opengauss/quartz.sql:/tmp/quartz.sql:ro
- ../opengauss/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
- ./mogdb/create_schema.sh:/tmp/create_schema.sh:ro