Skip to content

1. Docker 部署

推荐服务器配置

以下配置用于单机部署全部基础服务和 7 个后端服务。

项目推荐配置
操作系统Linux 64 位,Debian / Ubuntu
CPU4 核及以上
内存16 GB 及以上
磁盘至少 40 GB 可用空间,数据量增长时扩容
网络可访问 Docker 镜像仓库和 Maven Central
部署工具Docker Engine、Buildx、Compose v2、Python 3、curl

业务服务在容器内使用 Java 21,宿主机无需安装 Java、Maven。完成首次准备后,只需执行:

bash
bash builds/script/docker/deploy.sh deploy

一、目录说明

所有命令在 mesh-platform 后端项目根目录执行,源码提前放到服务器,脚本不拉取或切换 Git 分支。

text
mesh-platform/
├── pom.xml
├── supports/                   # 网关、认证、用户和流程服务源码
├── services/                   # APP、CRM、AI 服务源码
└── builds/
    ├── data/
    │   ├── sql/                # 六份业务数据库初始化脚本
    │   └── nacos/
    │       └── nacos_config.zip
    ├── web/                    # 前端产物,包含 index.html
    ├── server/                 # init 自动复制的 Docker 构建用 JAR
    └── script/docker/
        ├── deploy.sh
        ├── docker-compose.yml
        ├── server/Dockerfile
        ├── elasticsearch/Dockerfile
        └── volumes/            # 启动后生成的持久化目录
路径准备方式
builds/data/sql/随项目提供 mesh_ai、mesh_app、mesh_bpm、mesh_crm、mesh_uaa、mesh_upms 六份 SQL
builds/data/nacos/nacos_config.zip随项目提供,脚本自动导入
builds/web/放入前端生产构建产物,接口前缀使用 /pro-api
builds/server/脚本自动生成,无需手动复制 JAR
builds/script/docker/volumes/持久化数据和生成的 Nginx 配置,更新时保留
ES 数据卷由 Compose 管理,更新时保留

若缺少前端产物,在前端仓库执行 pnpm install --frozen-lockfile && pnpm run build:prod,将 dist/ 里面的文件复制到后端 builds/web/

二、首次准备

1. 安装工具

Docker 官方安装指南 安装 Docker Engine、Buildx 和 Compose v2,确保当前用户能够执行 Docker 命令。Debian / Ubuntu 补充安装:

bash
sudo apt-get update
sudo apt-get install -y python3 curl
docker info >/dev/null && docker compose version

2. 设置 ES 内核参数

bash
printf 'vm.max_map_count=262144\n' | sudo tee /etc/sysctl.d/99-mesh-es.conf
sudo sysctl --system

3. 核对 Compose 配置

直接编辑 builds/script/docker/docker-compose.yml,不需要在终端输入 readexport 或额外指定 MCP 地址。

配置内容修改位置要求
MySQL 密码mysql 的 MYSQL_ROOT_PASSWORD、各业务服务的 MESH_DATABASE_PASSWORD两处使用相同密码
Redis 密码redis 的 REDIS_PASSWORD、各业务服务的 SPRING_DATA_REDIS_PASSWORD两处使用相同密码
前端端口nginx-ui 的 ports左侧为服务器访问端口,右侧与 Nginx 监听端口一致
网络networks.mesh-network.ipam 及各服务静态 IP默认 172.22.0.0/24,不要与已有网络冲突
MCP 地址由部署脚本导入 Nacos 时处理使用 CRM 容器服务名,端口与实际 CRM 配置一致

Compose 现有密码采用带默认值的表达式。首次部署时,可将所有 ${MYSQL_PASSWORD:-root} 替换为自己的 MySQL 密码,将所有 ${REDIS_PASSWORD:-123456} 替换为自己的 Redis 密码,保留各字段原有的 YAML 结构。这样密码直接由配置文件提供。已有数据库修改密码时,需要同时修改数据库账户密码,不能只改 Compose。

4. 核对端口

业务服务的 HTTP、WebSocket 端口统一在 Nacos 中配置,可按部署环境调整,以实际发布的配置为准。Docker 部署还需同步核对:

  • Compose 的 ports 使用“服务器端口:容器端口”,容器端口与服务实际监听端口一致。
  • 业务镜像的 build.args.APP_PORT 同时用于 Java 启动参数和健康检查,会覆盖 Nacos 中的 HTTP 端口;调整时必须一起修改并重新构建业务镜像。
  • deploy.sh 中的 Nginx 代理模板和 MCP 配置导入地址,应与网关、CRM 的实际端口一致。

MySQL、Redis、ES、Nacos 等基础服务的监听和映射端口在对应服务配置及 Compose 中设置,业务连接地址同步更新。防火墙按实际前端访问端口放行,基础服务仅向可信内网开放。

默认 Nacos 未开启鉴权,数据库和配置中心不要直接对公网开放。同机已有部署时,还需检查固定容器名称是否冲突。

三、一键部署

bash
bash builds/script/docker/deploy.sh deploy

执行顺序:编译 JAR → 准备 SQL、Nginx 和 JAR → 启动基础服务 → 导入 Nacos 配置 → 启动后端 → 启动前端

基础服务版本为 MySQL 8.0.32、Redis 7.2.4、Elasticsearch 9.5.1(含 analysis-icu)、Nacos 2.3.2。Compose 根据健康检查等待依赖就绪,CRM 在 APP 和 ES 就绪后初始化索引。

完成后访问 http://服务器IP/。修改过前端映射端口时,在地址后加对应端口。

四、检查部署结果

以下访问地址仅为示例,请按实际前端、ES 映射端口调整。

bash
docker compose -p mesh-platform -f builds/script/docker/docker-compose.yml ps
curl -fsS http://127.0.0.1/pro-api/actuator/health
检查项预期结果
前端页面正常加载
7 个后端容器状态为 healthy
网关健康接口返回 UP
ES 索引当前发布数据初始化为 17 个索引,并包含字段映射

查看 CRM 日志与 ES 索引:

bash
docker compose -p mesh-platform -f builds/script/docker/docker-compose.yml logs --tail=100 mesh-crm
curl -fsS 'http://127.0.0.1:9200/_cat/indices?v'

五、更新与常用操作

统一使用 bash builds/script/docker/deploy.sh 参数

参数作用
deploy编译并部署;更新源码后再次执行
init已有 Maven 产物时,准备配置及 JAR、启动基础服务并导入 Nacos
server构建业务镜像并启动前后端
nginx启动前端
stop停止服务,保留数据
rm删除已停止的容器,保留持久化数据

MySQL 只在空数据目录首次启动时导入 SQL。更新时保留持久化目录和 ES 数据卷;旧版本 ES 数据须按支持的升级路径迁移。init / deploy 会重新导入 Nacos 配置,请先保留控制台修改的配置。任务中心默认不启用,需要时另行准备任务库并开启对应配置。

六、常见问题

现象排查位置
镜像或依赖下载失败检查镜像仓库、Maven Central 网络访问
Maven 镜像下载失败,但本机已安装 Java 21 和 Maven将 deploy.sh 中 BUILD_LOCAL 的默认值由 0 改为 1,仍使用相同 deploy 命令
前端 502检查网关实际监听端口与 Nginx 代理是否一致
数据库连接失败核对 Compose 中基础服务、业务服务的密码是否一致
Nacos 配置丢失检查配置包是否存在,命名空间 ID 是否为 pro
ES 无法启动检查内存、内核参数、插件和数据版本兼容性

下一篇:2. Shell 部署

郑州蝉鸣数字科技有限公司出品