Skip to content

启动与验证 ​

启动 ​

bash
git clone <仓库地址> iotlcm
cd iotlcm/deploy

# 首次部署建议前台启动,便于观察初始化过程
docker compose up

# 确认无误后转后台
docker compose up -d

不需要复制或修改任何文件,配置已带可用默认值。

首次启动发生什么 ​

  1. MySQL 建库并导入 schema(约 1~2 分钟) schema/ 下 13 个脚本按文件名顺序执行:建表 → 结构补齐 → 创建应用账号 → 重置种子账号口令 → 导入通道模板/字典/菜单等种子数据
  2. MySQL 通过健康检查后,admin-svr、openapi、worker-svr 依次启动
  3. 各服务向 Consul 注册

观察初始化进度:

bash
docker compose logs -f mysql

看到 [initdb] 应用账号 u_iotlcm 已创建 与 [initdb] 种子账号口令已统一重置 表示初始化完成。

初始化失败需清空数据卷

MySQL 只在 data/mysql 为空时执行 schema/。若中途失败,改完脚本必须清空卷才会重跑:

bash
docker compose down
sudo rm -rf ./data/mysql
docker compose up -d

这会删除全部数据,仅限首次部署阶段使用。

检查状态 ​

bash
docker compose ps

期望结果:

服务状态
iotlcm-mysqlUp (healthy)
iotlcm-redisUp (healthy)
iotlcm-rabbitmqUp (healthy)
iotlcm-consulUp
iotlcm-admin-svrUp
iotlcm-admin-uiUp
iotlcm-openapiUp
iotlcm-upstream-chanUp
iotlcm-upstream-proxyUp
iotlcm-worker-svrUp
iotlcm-app-serverUp
iotlcm-app-webUp
iotlcm-smsUp (healthy)
iotlcm-docsUp

出现 Restarting 或 Exited 需查日志:

bash
docker compose logs --tail=100 <服务名>

验证清单 ​

按顺序逐项确认,任一步失败先解决再继续。

1. 数据库表数量 ​

bash
docker compose exec mysql sh -c \
  'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e \
   "SELECT COUNT(*) AS tables FROM information_schema.tables WHERE table_schema=\"db_iotlcm\";"'

预期 tables = 89。

2. 种子数据 ​

bash
docker compose exec mysql sh -c \
  'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" db_iotlcm -e \
   "SELECT (SELECT COUNT(*) FROM sys_menu) AS menus, (SELECT COUNT(*) FROM sys_user) AS users;"'

预期菜单约 447 条,账号 18 个。

3. 管理端后端 ​

bash
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8008/api.json

预期 200。

4. 管理端前端 ​

bash
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8009/

预期 200。

5. 对外 API ​

bash
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8000/api.json

预期 200。

6. 短信服务 ​

bash
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:11190/healthz

预期 200。

7. 浏览器登录 ​

访问 http://127.0.0.1:8009(编排默认把业务端口绑定在 127.0.0.1;需要从其他机器访问时,用 --profile with-nginx 起反向代理,或改绑定地址):

项值
账号admin
口令docker-compose.yml 中 admin 的默认口令(首次登录后立即修改)

能进入首页工作台、左侧菜单完整显示即部署成功。

首次登录后必做 ​

  1. 修改 admin 口令:右上角个人中心 → 安全设置
  2. 处理其余种子账号:user02、2admin 等 17 个账号默认与 admin 同一口令,不使用请停用或删除
  3. 确认字典与菜单加载:进入「卡信息」页,确认筛选下拉选项不为空

后端自检 ​

bash
# admin-svr 是否连上数据库
docker compose logs admin-svr | grep -iE 'error|panic' | tail -20

# worker-svr 是否连上 RabbitMQ
docker compose logs worker-svr | tail -30

# upstream-chan 是否连上 Redis 与 Consul
docker compose logs upstream-chan | tail -30

正常日志不应出现 connection refused、access denied、panic。

停止与重启 ​

bash
docker compose stop                  # 停止,保留数据
docker compose restart               # 重启全部
docker compose restart admin-svr     # 重启单个
docker compose down                  # 停止并删除容器(./data 不受影响)

不要执行 down -v

-v 会删除命名数据卷。本编排数据都在 ./data 宿主机目录,但 -v 仍可能影响同项目的其他卷。停止服务用 down 即可。

下一步 ​

iotLCM 文档中心