250 lines
4.6 KiB
Markdown
250 lines
4.6 KiB
Markdown
# 基础设施部署文档
|
||
|
||
## 概述
|
||
|
||
本项目使用 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**
|