部署目录:
/home/admin-x99/emp/emp-uat/runtimeCompose 项目名:emp-uat,网络emp-uat_emp-net,数据卷前缀emp-uat_,与 test 完全隔离。
| 服务 | 容器服务名 | 宿主机端口 | 容器内端口 | 说明 |
|---|---|---|---|---|
| 前端(Nginx) | emp-admin | 4755 | 80 | 管理后台入口,代理 /api/、/socket.io/,并转发模拟器 |
| MySQL | mysql | 4757 | 3306 | 业务库 emp |
| TDengine UI | tdengine | 4759 | 6060 | 时序库管理界面 |
http://ip-cld.cn:4755/http://ip-cld.cn:4755/simulator/(经 admin 内部 Nginx 转发)| 服务 | 内网地址 | 说明 |
|---|---|---|
| emp-ws | emp-ws:3000 | Socket.IO 推送 + 模拟器,经 admin Nginx 转发,4756 不对外 |
| emp-gateway | emp-gateway:9000 | API 网关(JWT 鉴权入口) |
| emp-auth | emp-auth:9001 | 认证授权 |
| emp-monitor | emp-monitor:9002 | 业务接口 |
| emp-data | emp-data:9003 | 数据消费/清洗/时序写入 |
| emp-pdf | emp-pdf:3100 | PDF 导出 |
| nacos | nacos:8848 | 注册/配置中心 |
| redis | redis:6379 | 缓存(DB 0) |
| tdengine REST | tdengine:6041 | 时序库 REST |
快捷函数(或使用 profiles/dc.sh):
cd /home/admin-x99/emp/emp-uat/runtime
dc() { docker compose --env-file .env -f docker-compose.yml -p emp-uat "$@"; }
| 操作 | 命令 |
|---|---|
| 查看所有容器状态 | dc ps |
| 跟踪某服务日志 | dc logs -f emp-monitor |
| 查看最近 200 行日志 | dc logs --tail=200 emp-monitor |
| 改 .env 后重建某服务 | dc up -d emp-monitor |
| 重启某服务(不重读 .env) | dc restart emp-ws |
| 启动全部 | dc up -d |
| 停止全部(保留数据卷) | dc down |
| 进 MySQL | dc exec mysql sh -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" emp' |
| 进 Redis | dc exec redis sh -c 'redis-cli -a "$REDIS_PASSWORD"' |
| 进 TDengine | dc exec tdengine taos |
| 查看资源占用 | docker stats |
改
.env必须用up -d重建容器,restart不会重新读取环境变量。
常用排查:
# 同步相关日志
dc logs -f emp-monitor | grep -E "同步"
# 查看 sync 水位(车辆/设备增量游标)
dc exec redis sh -c 'redis-cli -a "$REDIS_PASSWORD" KEYS "sync:*"'
# 排查单点登录顶号(token 版本号)
dc exec redis sh -c 'redis-cli -a "$REDIS_PASSWORD" GET auth:token-version:<userId>'
emp,内网 mysql:3306,对外 4757redis:6379,DB 0emp,超级表 s_vehicle_data,tdengine:6041,UI 对外 4759nacos:8848,开启鉴权(NACOS_AUTH_ENABLE=true)ip-cld.cn:29362YuanJing-uat-vehicle-mock-data(group emp-uat-data-group)uat-vehicle-real-dataCOMPOSE_PROFILES=local-kafkaSIMULATOR_ADMIN_ROLE=ADMIN:任意含 ADMIN 角色的账号可登录模拟器emp-uat,网络 emp-uat_emp-net,数据卷前缀 emp-uat_,与 test 完全隔离.env 必须使用真实密码/密钥(MySQL、Redis、JWT、COS、SYNC_TK 等),勿用占位符.env 不生效时,需到 Nacos 控制台修改对应 dataIds_vehicle_datasync:vehicle:lastUpdateTime、sync:device:lastUpdateTime,否则从游标处增量拉取不到旧数据