Skip to content

Commit 4223a58

Browse files
jss-tgxiaorongnieipcjsth-ci
authored
feat: 配置bus (#5)
* feat(rabbitmq): 启用stomp插件 xiaorongnie * feat(mysql5.7): 增加bus的数据库 xiaorongnie * feat(bus后台): 增加bus后台服务, xiaorongnie * wip: 添加从CI服务器下载前端的文档 * feat(主动安全): 增加主动安全和BUS计算服务 * feat(nginx代理): 增加files代理和rtp连接redis * fix(nginx日志路径): 更新nginx日志 * feat(video-nginx): 增加一套http的监听模版 * feat(bus单机部署demo): 增加bus单机部署demo * fix(rtp): 节点改回原来的名字 * feat(rtp): 同时兼容http和https, liu * wip: 复写的compose文件只保留不同的部分 * wip: 添加bus的初始数据库文件 * wip: 添加创建database语句 * wip: 移除log相关语句 * wip: 添加注释 * fix(端口监听): 用不到的直接删掉 * wip: 添加注释 * feat(nginx): 增加拦截health * wip: 移除对mysql的依赖, 可以用mysql8作为数据库 * fix: 配置ulimits --------- Co-authored-by: xiaorongnie <fukua365@gmail.com> Co-authored-by: ipcjs.mac4 <gipcjs@gmail.com> Co-authored-by: th-ci <root@tg.th-ci>
1 parent 42ebceb commit 4223a58

25 files changed

Lines changed: 10819 additions & 35 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ ip2region.xdb
66
/.env
77
/.env.local
88
/tmp
9+
/scripts/*.zip

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,27 @@ git clone https://github.com/TranscodeGroup/docker.git /home/docker
3030
docker compose config
3131
```
3232

33-
### 4. 启动
33+
### 4. 下载前端文件
34+
35+
下载并提取最新的`bus`前端:
36+
37+
```sh
38+
cd /data/nginx/html
39+
/home/docker/scripts/teamcity-download-artifact.sh --build=CityBusVueAdmin_Release
40+
unzip CityBusVueAdmin_Release-latest.zip
41+
unzip bus.zip -d bus
42+
```
43+
44+
下载并提取最新的`track`前端:
45+
46+
```sh
47+
cd /data/nginx/html
48+
/home/docker/scripts/teamcity-download-artifact.sh --build=MaintainVbenAdmin_Release
49+
unzip MaintainVbenAdmin_Release-latest.zip
50+
unzip maintain.zip -d track
51+
```
52+
53+
### 5. 启动
3454

3555
`/home/docker-compose`中执行如下命令, 启动docker:
3656

bus/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../.env.default

bus/compose.yml

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
services:
2+
gateway_808_2019:
3+
image: transcodegroup/gateway-808-2019:latest
4+
container_name: gateway_808_2019
5+
restart: always
6+
volumes:
7+
- /data/files:/data/files
8+
- /data/logs/gateway_808_2019:/logs
9+
environment:
10+
- gateway_ip=${JTT808_IP}
11+
- gateway_port=${JTT808_PORT}
12+
- gateway_type=bus-gps
13+
# 主动安全文件服务器
14+
- gateway_file-host=${JTT808_IP:?required}
15+
- gateway_file-port=${JTT808_PORT_FILE}
16+
# FTP
17+
- gateway_ftp_ip=${JTT808_IP:?required}
18+
- gateway_ftp_port=${JTT808_PORT_FTP}
19+
- gateway_ftp_active-port=${JTT808_PORT_FTP_ACTIVE}
20+
- gateway_ftp_passive-ip=${JTT808_IP:?required}
21+
- gateway_ftp_passive-ports=${JTT808_PORT_FTP_PASSIVE}
22+
- gateway_ftp_file-save-days=30
23+
24+
# DB
25+
- SPRING_DATASOURCE_URL=jdbc:mysql://${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306}/cbus?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
26+
- SPRING_DATASOURCE_USERNAME=${MYSQL_USERNAME:-root}
27+
- SPRING_DATASOURCE_PASSWORD=${MYSQL_PASSWORD:?required}
28+
29+
# REDIS
30+
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
31+
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
32+
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
33+
34+
# 日志
35+
- logging_level_io_netty_handler_logging_LoggingHandler=WARN
36+
- logging.level.org.apache.ftpserver=WARN
37+
ports:
38+
- ${JTT808_PORT}:${JTT808_PORT}
39+
- ${JTT808_PORT_FTP}:${JTT808_PORT_FTP}
40+
- ${JTT808_PORT_FTP_ACTIVE}:${JTT808_PORT_FTP_ACTIVE}
41+
- ${JTT808_PORT_FTP_PASSIVE}:${JTT808_PORT_FTP_PASSIVE}
42+
ulimits:
43+
nproc: 65535
44+
nofile:
45+
soft: 20000
46+
hard: 40000
47+
# json-file
48+
logging:
49+
driver: "json-file"
50+
options:
51+
max-size: "50M"
52+
max-file: "1"
53+
54+
# spring-boot后端
55+
gateway_web:
56+
image: transcodegroup/gateway-web
57+
container_name: gateway_web
58+
restart: always
59+
volumes:
60+
- /data/files:/data/files
61+
- /usr/share/fonts:/usr/share/fonts
62+
# ports:
63+
# 内部端口, 不暴露
64+
# - 8899:8899
65+
environment:
66+
- DYNAMIC_TABLE=TRUE
67+
- STORAGE_ACTIVE=TRUE
68+
- SPRING_SERVLET_MULTIPART_MAX-FILE-SIZE=100MB
69+
# DB
70+
- SPRING_DATASOURCE_URL=jdbc:mysql://${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306}/cbus?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
71+
- SPRING_DATASOURCE_USERNAME=${MYSQL_USERNAME:-root}
72+
- SPRING_DATASOURCE_PASSWORD=${MYSQL_PASSWORD:?required}
73+
74+
# REDIS
75+
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
76+
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
77+
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
78+
79+
# RABBITMQ
80+
- spring.rabbitmq.host=${RABBITMQ_HOST:-rabbitmq}
81+
- spring.rabbitmq.port=${RABBITMQ_PORT:-5672}
82+
- spring.rabbitmq.username=${RABBITMQ_USERNAME:-admin}
83+
- spring.rabbitmq.password=${RABBITMQ_PASSWORD:?required}
84+
- spring.rabbitmq.virtual-host=/track
85+
# RABBITMQ-STOMP
86+
- rabbit.mq.host=${RABBITMQ_HOST:-rabbitmq}
87+
- rabbit.mq.port=${RABBITMQ_PORT_STOMP:-61613}
88+
- rabbit.mq.login=${RABBITMQ_USERNAME:-admin}
89+
- rabbit.mq.passcode=${RABBITMQ_PASSWORD:?required}
90+
- rabbit.mq.virtual=/track
91+
depends_on:
92+
- redis
93+
- rabbitmq
94+
logging:
95+
driver: "json-file"
96+
options:
97+
# 限制日志文件大小
98+
max-size: "100m"
99+
ulimits:
100+
nproc: 65535
101+
nofile:
102+
soft: 20000
103+
hard: 40000
104+
105+
# spring-boot调度
106+
gateway_dispatch:
107+
image: transcodegroup/gateway-dispatch
108+
container_name: gateway_dispatch
109+
restart: always
110+
volumes:
111+
- /data/files:/data/files
112+
# ports:
113+
# 内部端口, 不暴露
114+
# - 8011:8011
115+
depends_on:
116+
- redis
117+
- rabbitmq
118+
environment:
119+
- DYNAMIC_TABLE=TRUE
120+
# DB
121+
- SPRING_DATASOURCE_URL=jdbc:mysql://${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306}/cbus?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
122+
- SPRING_DATASOURCE_USERNAME=${MYSQL_USERNAME:-root}
123+
- SPRING_DATASOURCE_PASSWORD=${MYSQL_PASSWORD:?required}
124+
125+
# REDIS
126+
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
127+
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
128+
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
129+
130+
# RABBITMQ
131+
- spring.rabbitmq.host=${RABBITMQ_HOST:-rabbitmq}
132+
- spring.rabbitmq.port=${RABBITMQ_PORT:-5672}
133+
- spring.rabbitmq.username=${RABBITMQ_USERNAME:-admin}
134+
- spring.rabbitmq.password=${RABBITMQ_PASSWORD:?required}
135+
- spring.rabbitmq.virtual-host=/track
136+
# RABBITMQ-STOMP
137+
- rabbit.mq.host=${RABBITMQ_HOST:-rabbitmq}
138+
- rabbit.mq.port=${RABBITMQ_PORT_STOMP:-61613}
139+
- rabbit.mq.login=${RABBITMQ_USERNAME:-admin}
140+
- rabbit.mq.passcode=${RABBITMQ_PASSWORD:?required}
141+
- rabbit.mq.virtual=/track
142+
logging:
143+
driver: "json-file"
144+
options:
145+
# 限制日志文件大小
146+
max-size: "100m"
147+
# 主动安全
148+
gateway_jsatl12:
149+
image: transcodegroup/gateway-jsatl12
150+
container_name: gateway_jsatl12
151+
restart: always
152+
ports:
153+
- ${JTT808_PORT_FILE}:${JTT808_PORT_FILE}
154+
volumes:
155+
- "/data/logs/jsatl12:/logs"
156+
- "/data/files/alarm:/data/files/alarm"
157+
environment:
158+
- gateway_expire_days=16
159+
# REDIS
160+
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
161+
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
162+
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
163+
ulimits:
164+
nproc: 65535
165+
nofile:
166+
soft: 20000
167+
hard: 40000
168+
logging:
169+
driver: "json-file"
170+
options:
171+
# 限制日志文件大小
172+
max-size: "100m"
173+
gateway_calculation:
174+
image: transcodegroup/gateway-calculation
175+
container_name: gateway_calculation
176+
restart: always
177+
volumes:
178+
- /data/logs/gateway_calculation:/logs
179+
- /data/files:/data/files
180+
environment:
181+
# 默认开启分区存储
182+
- DYNAMIC_TABLE=TRUE
183+
- STORAGE_ACTIVE=FALSE
184+
# DB
185+
- SPRING_DATASOURCE_URL=jdbc:mysql://${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306}/cbus?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
186+
- SPRING_DATASOURCE_USERNAME=${MYSQL_USERNAME:-root}
187+
- SPRING_DATASOURCE_PASSWORD=${MYSQL_PASSWORD:?required}
188+
189+
# REDIS
190+
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
191+
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
192+
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
193+
ulimits:
194+
nproc: 65535
195+
nofile:
196+
soft: 20000
197+
hard: 40000
198+
logging:
199+
driver: "json-file"
200+
options:
201+
# 限制日志文件大小
202+
max-size: "100m"

examples/bus/.env

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
##参考广西恭县服务器开放9000-9100端口
2+
3+
## HOSTNAME 没有用公网IP替代
4+
SERVER_HOSTNAME=''
5+
## 公网IP
6+
SERVER_IP_PUBLIC=''
7+
## 宿主机内网IP
8+
SERVER_IP_INTERNAL=''
9+
10+
# nginx前端配置
11+
WEB_PORT_HTTP=9080
12+
13+
## MYSQL, 必填
14+
MYSQL_PASSWORD=''
15+
## redis
16+
REDIS_PASSWORD=''
17+
## rabbitMq
18+
RABBITMQ_PASSWORD=''
19+
20+
## Email
21+
MAIL_PASSWORD=''
22+
23+
## SSL证书, 没有启用证书, 只是占位符
24+
SSL_CERTIFICATE='/home/docker-compose/ssl/gc_transcodegroup_cn'

examples/bus/compose.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# BUS单机部署模版
2+
include:
3+
- ../docker/mysql5.7/compose.yml
4+
- ../docker/rabbitmq/compose.yml
5+
- ../docker/redis/compose.yml
6+
- ../docker/bus/compose.yml
7+
- path:
8+
- ../docker/video-nginx/compose.yml
9+
- ../docker/video-nginx/compose.http.yml
10+
- path:
11+
- ../docker/video/compose.yml
12+
- ../docker/video/compose.bus.yml
13+
- ../docker/video/compose.bus.http.yml
14+
- path:
15+
- ../docker/nginx/compose.yml
16+
- ../docker/nginx/compose.bus.yml
17+

mysql5.7/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../.env.default

mysql5.7/compose.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
services:
2+
mysql:
3+
image: transcodegroup/mysql
4+
container_name: mysql
5+
restart: always
6+
ports:
7+
- ${MYSQL_PORT:-3306}:3306
8+
volumes:
9+
- /data/mysql5.7/data:/var/lib/mysql
10+
- /data/mysql5.7/logs:/var/log/mysql
11+
- /data/mysql5.7/backup/database:/mysql/backup/database
12+
- /data/mysql5.7/backup/log:/mysql/backup/log
13+
environment:
14+
# 设置密码
15+
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD:?required}
16+
logging:
17+
driver: "json-file"
18+
options:
19+
# 限制日志文件大小
20+
max-size: "100m"

mysql8/initdb/01-create-db-maintain-20250429.sql renamed to mysql8/initdb/01-create-db-maintain.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
Date: 29/04/2025 17:54:11
1515
*/
1616

17+
-- 创建maintain数据库
1718
CREATE DATABASE IF NOT EXISTS maintain DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
1819
USE maintain;
1920

0 commit comments

Comments
 (0)