# 基础设施部署文档 ## 概述 本项目使用 Docker Compose 管理所有基础设施服务(MySQL、Redis、Nacos、RocketMQ、Seata 等)。 **重要:国内环境无法直接从 Docker Hub 拉取镜像,需要配置国内镜像加速器。** --- ## 前提条件 ### 1. 安装 Docker 和 Docker Compose ```bash # 安装 Docker curl -fsSL https://get.docker.com | bash # 安装 Docker Compose apt-get install -y docker-compose # 验证安装 docker --version docker-compose --version ``` ### 2. 配置国内 Docker 镜像加速 创建或编辑 `/etc/docker/daemon.json`: ```json { "registry-mirrors": [ "https://dockerproxy.cn", "https://docker.rainbond.cc", "https://docker.m.daocloud.io", "https://docker.wanpeng.top" ], "storage-driver": "overlay2" } ``` 然后重启 Docker: ```bash systemctl restart docker ``` --- ## 基础设施服务列表 | 服务 | 镜像 | 端口 | 说明 | |------|------|------|------| | MySQL | mysql:8.0 | 3307 | 数据库 | | Redis | redis:7-alpine | 6379 | 缓存 | | Nacos | nacos/nacos-server:v2.2.3 | 8848, 9848, 9849 | 服务注册与配置中心 | | RocketMQ | apache/rocketmq:5.1.4 | 9876, 10909, 10911 | 消息队列 | | Seata | seataio/seata-server:1.7.1 | 8091, 7091 | 分布式事务 | --- ## 启动基础设施 ### 方法一:使用 Docker Compose(推荐) ```bash # 进入项目目录 cd /path/to/erp-java-backend # 启动所有基础设施服务(不包括业务服务) docker-compose up -d mysql redis nacos rocketmq rocketmq-broker rocketmq-console seata # 启动所有基础设施(完整) docker-compose up -d ``` ### 方法二:逐个启动 ```bash # 1. 启动 MySQL docker-compose up -d mysql # 2. 启动 Redis docker-compose up -d redis # 3. 等待 MySQL 健康检查通过后,启动 Nacos docker-compose up -d nacos # 4. 启动 RocketMQ docker-compose up -d rocketmq rocketmq-broker ``` ### 验证服务状态 ```bash # 查看运行中的容器 docker-compose ps # 查看容器日志 docker-compose logs -f nacos # 健康检查 curl http://localhost:8848/nacos/ ``` --- ## Nacos 下载地址(国内镜像) 如果需要手动下载 Nacos Server,以下是国内可用的镜像源: ### 华为云镜像(推荐) ``` https://repo.huaweicloud.com/alibaba/nacos/2.2.3/nacos-server-2.2.3.tar.gz ``` ### 中科大镜像 ``` https://mirrors.ustc.edu.cn/github/alibaba/nacos/v2.2.3/nacos-server-2.2.3.tar.gz ``` ### 腾讯云镜像 ``` https://mirrors.cloud.tencent.com/github/alibaba/nacos/2.2.3/nacos-server-2.2.3.tar.gz ``` ### Maven 中央仓库 ``` https://repo.maven.apache.org/maven2/com/alibaba/nacos/nacos-server/2.2.3/nacos-server-2.2.3.tar.gz ``` ### GitHub 直链(需要代理) ``` https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz ``` ### Nacos Docker 镜像 ```bash # Docker Hub 镜像(需要配置加速器) docker pull nacos/nacos-server:v2.2.3 # 或者使用国内镜像 docker pull dockerpull.cn/nacos/nacos-server:v2.2.3 ``` --- ## 启动后配置 ### Nacos 控制台 1. 访问 http://localhost:8848/nacos 2. 默认用户名:`nacos` 3. 默认密码:`nacos` ### 创建配置 Nacos 启动后会自动创建 `nacos_config` 数据库,但可能需要手动执行初始化脚本: ```bash # 查看 Nacos 初始化 SQL ls /root/.openclaw/workspace/erp-java-backend/nacos/init/ ``` --- ## 常见问题 ### 1. Docker Hub 无法访问 **问题**:`Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp` **解决**: 1. 配置国内 Docker 镜像加速器(见上文) 2. 或使用代理 ### 2. Nacos 启动失败 **检查**: ```bash # 查看 Nacos 日志 docker-compose logs nacos # 检查 MySQL 是否就绪 docker-compose ps mysql ``` ### 3. 服务无法连接到 Nacos **检查**: 1. Nacos 是否已启动并通过健康检查 2. 网络是否正确配置 3. 防火墙是否开放 8848 端口 ### 4. MySQL 连接失败 **检查**: ```bash # 查看 MySQL 日志 docker-compose logs mysql # 测试连接 mysql -h localhost -P 3307 -uroot -proot123456 ``` --- ## 停止服务 ```bash # 停止所有服务(保留数据) docker-compose stop # 停止并删除容器(保留数据卷) docker-compose down # 停止并删除所有数据(危险!) docker-compose down -v ``` --- ## 端口占用检查 如果端口被占用: ```bash # Linux netstat -tlnp | grep 8848 lsof -i :8848 # 或使用 ss ss -tlnp | grep 8848 ``` --- ## 资源要求 | 服务 | 最低内存 | 推荐内存 | |------|---------|---------| | MySQL | 512MB | 1GB | | Redis | 128MB | 256MB | | Nacos | 512MB | 1GB | | RocketMQ | 1GB | 2GB | | Seata | 256MB | 512MB | **总计:约 2.5GB - 4GB**