fundplatform/doc/Docker部署指南.md
zhangjf 109ae29474 docs: 添加Docker构建脚本和部署指南
- scripts/docker-build.sh: Docker镜像构建脚本
  - 支持单模块构建、全部构建、docker-compose构建
  - 支持镜像源配置、镜像推送、清理功能
- doc/Docker部署指南.md: 完整部署文档
  - 环境要求、镜像源配置
  - 镜像构建方法、服务端口规划
  - 启动停止命令、故障排查
2026-02-19 19:15:56 +08:00

6.4 KiB
Raw Permalink Blame History

资金服务平台 Docker 部署指南

版本: v1.0
更新日期: 2026-02-19


一、环境要求

软件 版本 说明
Docker 20.10+ 容器运行环境
Docker Compose 2.0+ 容器编排工具
Maven 3.8+ Java 构建工具
JDK 21 Java 运行环境

二、Docker 镜像源配置

国内网络访问 Docker Hub 较慢,建议配置镜像源:

# 创建配置文件
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
  ]
}
EOF

# 重启 Docker 服务
sudo systemctl restart docker

# 验证配置
docker info | grep -A 3 "Registry Mirrors"

三、镜像构建

3.1 使用构建脚本(推荐)

cd /home/along/MyCode/wanjiabuluo/fundplatform

# 查看帮助
./scripts/docker-build.sh help

# 检查 Docker 环境
./scripts/docker-build.sh check

# 配置镜像源(需要 sudo
./scripts/docker-build.sh mirror

# 构建单个模块
./scripts/docker-build.sh build fund-sys

# 构建所有模块
./scripts/docker-build.sh build-all

# 使用 docker-compose 构建
./scripts/docker-build.sh compose

# 清理未使用的镜像
./scripts/docker-build.sh clean

3.2 手动构建单个模块

# 构建命令格式
docker build --build-arg MODULE=<模块名> -t <镜像名>:<标签> .

# 示例:构建 fund-sys
docker build --build-arg MODULE=fund-sys -t fund-sys:latest .

# 示例:构建 fund-gateway
docker build --build-arg MODULE=fund-gateway -t fund-gateway:latest .

3.3 构建所有模块

# 循环构建所有模块
for module in fund-gateway fund-sys fund-cust fund-proj fund-req fund-exp fund-receipt fund-report fund-file; do
    echo "构建 $module..."
    docker build --build-arg MODULE=$module -t $module:latest .
done

# 或使用 docker-compose
docker-compose build

四、服务端口规划

服务 容器端口 主机端口 说明
fund-gateway 8000 8000 API 网关
fund-sys 8100 8100 系统服务
fund-cust 8200 8200 客户服务
fund-proj 8300 8300 项目服务
fund-req 8400 8400 需求工单服务
fund-exp 8500 8500 支出服务
fund-receipt 8600 8600 收款服务
fund-report 8700 8700 报表服务
fund-file 8800 8800 文件服务
mysql 3306 3306 MySQL 数据库
redis 6379 6379 Redis 缓存
nacos 8848 8848 Nacos 注册中心
prometheus 9090 9090 Prometheus 监控
grafana 3000 3000 Grafana 可视化

五、启动服务

5.1 启动基础设施

# 仅启动 MySQL、Redis、Nacos
docker-compose up -d mysql redis nacos

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f nacos

5.2 启动所有服务

# 启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看所有服务日志
docker-compose logs -f

# 查看单个服务日志
docker-compose logs -f fund-sys

5.3 分步启动

# 1. 启动基础设施
docker-compose up -d mysql redis nacos

# 2. 等待 Nacos 就绪(约 60 秒)
sleep 60

# 3. 启动网关
docker-compose up -d gateway

# 4. 启动业务服务
docker-compose up -d fund-sys fund-cust fund-proj fund-req fund-exp fund-receipt fund-report fund-file

# 5. 启动监控
docker-compose up -d prometheus grafana

六、停止服务

# 停止所有服务
docker-compose down

# 停止并删除数据卷
docker-compose down -v

# 停止单个服务
docker-compose stop fund-sys

# 重启单个服务
docker-compose restart fund-sys

七、访问地址

服务 地址 用户名/密码
Nacos 控制台 http://localhost:8848/nacos nacos / nacos
Grafana http://localhost:3000 admin / admin123
Prometheus http://localhost:9090 -
API 网关 http://localhost:8000 -
健康检查 http://localhost:8100/actuator/health -
Prometheus 指标 http://localhost:8100/actuator/prometheus -

八、常用命令

8.1 容器管理

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止)
docker ps -a

# 进入容器
docker exec -it fund-sys sh

# 查看容器日志
docker logs -f fund-sys

# 查看容器资源使用
docker stats fund-sys

8.2 镜像管理

# 查看本地镜像
docker images

# 删除镜像
docker rmi fund-sys:latest

# 清理未使用的镜像
docker image prune -f

# 导出镜像
docker save -o fund-sys.tar fund-sys:latest

# 导入镜像
docker load -i fund-sys.tar

8.3 数据卷管理

# 查看数据卷
docker volume ls

# 删除数据卷
docker volume rm fund-mysql-data

# 清理未使用的数据卷
docker volume prune

九、环境变量配置

docker-compose.yml 中通过环境变量配置服务:

environment:
  # 服务端口
  SERVER_PORT: 8100
  
  # Spring Profile
  SPRING_PROFILES_ACTIVE: docker
  
  # Nacos 配置
  NACOS_SERVER_ADDR: nacos:8848
  NACOS_USERNAME: nacos
  NACOS_PASSWORD: nacos
  
  # MySQL 配置
  MYSQL_HOST: mysql
  MYSQL_PORT: 3306
  MYSQL_DB: fund_platform
  MYSQL_USER: root
  MYSQL_PASSWORD: root123
  
  # Redis 配置
  REDIS_HOST: redis
  REDIS_PORT: 6379
  
  # JVM 参数
  JAVA_OPTS: -Xms256m -Xmx512m -XX:+UseG1GC

十、故障排查

10.1 服务启动失败

# 查看服务日志
docker-compose logs fund-sys

# 查看容器状态
docker inspect fund-sys

# 检查网络
docker network inspect fund-network

10.2 无法连接 Nacos

# 检查 Nacos 是否就绪
curl http://localhost:8848/nacos/v1/console/health/readiness

# 检查服务注册情况
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=fund-sys

10.3 数据库连接失败

# 进入 MySQL 容器
docker exec -it fund-mysql mysql -uroot -proot123

# 检查数据库
SHOW DATABASES;
USE fund_platform;
SHOW TABLES;

十一、生产环境建议

  1. 修改默认密码:修改 MySQL、Redis、Nacos、Grafana 的默认密码
  2. 配置 HTTPS:使用 Nginx 反向代理并配置 SSL 证书
  3. 资源限制:在 docker-compose.yml 中配置 CPU 和内存限制
  4. 日志持久化:将日志挂载到宿主机
  5. 数据备份:定期备份 MySQL 数据
  6. 监控告警:配置 Prometheus 告警规则