--- title: 环境准备 description: 部署 IotLCM 所需的硬件、系统、Docker 与网络条件 outline: deep --- # 环境准备 ## 硬件要求 按数据规模选择: | 场景 | CPU | 内存 | 磁盘 | 说明 | | --- | --- | --- | --- | --- | | 试用 / 演示 | 2 核 | 4 GB | 40 GB | 少量卡片,建议停用定时同步任务 | | 生产(中小规模) | 4 核 | 8 GB | 200 GB | 万级卡片,开启全量同步 | | 生产(大规模) | 8 核+ | 16 GB+ | 500 GB+ | 十万级卡片,建议数据库独立部署 | 磁盘估算:MySQL 数据约 1~2 KB/张卡;日志随同步任务量增长,建议单独挂载并配置轮转。 生产 8 GB 场景的内存分配参考: | 服务 | 占用 | | --- | --- | | MySQL | 1~2 GB | | Redis | 200~500 MB | | RabbitMQ | 300~500 MB | | worker-svr | 500 MB~1 GB(与并发同步卡片数相关) | | 其余业务服务 | 各 100~200 MB | ## 系统要求 | 项 | 要求 | | --- | --- | | 操作系统 | Linux x86_64(CentOS 7+ / Ubuntu 20.04+ / Debian 11+) | | 内核 | 3.10 以上 | | 文件系统 | ext4 / xfs | | 时区 | 建议 `Asia/Shanghai`,与 `docker-compose.yml` 的 `TZ` 保持一致 | ## Docker 要求 | 组件 | 最低版本 | 说明 | | --- | --- | --- | | Docker Engine | 20.10 | 需支持 `healthcheck` 与 `profiles` | | Docker Compose | v2.0(插件版) | 使用 `docker compose` 而非 `docker-compose` | 验证: ```bash docker version docker compose version ``` `docker compose version` 需 ≥ v2.0。若只有 `docker-compose`(v1),请升级到 Compose V2 插件。 ## 镜像仓库 平台镜像发布在阿里云容器镜像服务,**仓库类型为公开,无需登录即可拉取**。 | 项 | 值 | | --- | --- | | 公网地址 | `crpi-qflrqrxoohllkvgc.cn-chengdu.personal.cr.aliyuncs.com` | | VPC 地址 | `crpi-qflrqrxoohllkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com` | | 命名空间 | `iotlcm` | | 地域 | 西南1(成都) | 业务镜像路径为: ```text crpi-qflrqrxoohllkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-svr:1.0.3 crpi-qflrqrxoohllkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-openapi:1.0.3 ... ``` `docker-compose.yml` 里的镜像地址已预置为上述公网地址,一般无需修改。 ::: tip 基础组件也在同一仓库 MySQL、Redis、RabbitMQ、Consul、nginx 同样托管在 `library/` 命名空间下,不从 Docker Hub 直连(公网不稳定且 tag 会漂)。版本已在编排文件中固定,**必须与仓库里实际同步的标签一致**。 ::: ::: warning 基础组件需先同步 部署前 `library/` 下必须已有这五个镜像,否则拉取失败。同步方法见[自建镜像](build-image)的「同步基础组件」一节。 ::: ::: tip 阿里云 VPC 地址 若部署在阿里云同地域 ECS 上,可把编排文件里的镜像前缀改为 VPC 地址,走内网流量、不消耗公网带宽: ```yaml image: 'crpi-qflrqrxoohllkvgc-vpc.cn-chengdu.personal.cr.aliyuncs.com/library/mysql:8.0' ``` ::: ## 网络与防火墙 仅需对外开放反向代理端口(默认 80 / 443),其余服务端口应限制为内网访问。 ```bash # 示例:firewalld 仅放行 80/443 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload ``` ::: tip 默认只监听本机 `admin-svr`、`admin-ui`、`openapi`、`app-server`、`app-web`、`docs` 默认绑定 `127.0.0.1`,只能本机访问。对外需通过反向代理,见[可选服务](optional)。 ::: ## 外部依赖(可选) | 服务 | 用途 | 不配置的影响 | | --- | --- | --- | | TDengine 3.x | 存流量历史数据 | 历史流量查询不可用,主流程正常 | | 短信服务商 | 发送验证码 | 无法发送短信 | | 微信支付 | 在线支付 | 支付功能不可用 | | 飞书 | 运维通知 | 不启动 bot 即可 | TDengine 需开启 WebSocket 接口(默认 6041),在 `docker-compose.yml` 中配置: ```bash TDENGINE_HOST=tdengine.example.com TDENGINE_PORT=6041 TDENGINE_USER=root TDENGINE_PASSWORD= TDENGINE_DAILY_DB=iotlcm_daily TDENGINE_MONTHLY_DB=iotlcm_monthly ``` 不使用时全部留空。