spring-ai-alibaba-admin/docker/middleware/README.md
本目录提供了用于本地开发的中间件服务配置,支持 dev 和 prod 两种模式。
从项目根目录执行:
# 启动 dev 模式(仅 MySQL)
make env-start MODE=dev
# 启动 prod 模式(所有中间件)
make env-start MODE=prod
# 停止服务(保留数据)
make env-stop MODE=dev
make env-stop MODE=prod
# 停止并清理所有数据
make env-clean MODE=dev
make env-clean MODE=prod
在本目录下执行:
# 启动服务
./run.sh dev # 启动 dev 模式
./run.sh prod # 启动 prod 模式
# 停止服务
./stop.sh dev # 停止 dev 模式
./stop.sh prod # 停止 prod 模式
# 清理数据
docker compose -f docker-compose-dev.yaml down -v
docker compose -f docker-compose-prod.yaml down -v
docker-compose-dev.yaml - Dev 模式配置(仅 MySQL)docker-compose-prod.yaml - Prod 模式配置(所有中间件)env.template - 环境变量模板mysql.env - MySQL 配置run.sh - 启动脚本stop.sh - 停止脚本所有数据存储在当前目录下的子目录中:
docker/middleware/
├── mysql/data/ # MySQL 数据
├── redis/data/ # Redis 数据
├── elasticsearch/data/ # Elasticsearch 数据
├── nacos/data/ # Nacos 配置数据
├── rocketmq/store/ # RocketMQ 消息数据
└── ...
# 查看服务状态
docker compose -f docker-compose-dev.yaml ps
docker compose -f docker-compose-prod.yaml ps
# 查看服务日志
docker compose -f docker-compose-dev.yaml logs -f
docker compose -f docker-compose-prod.yaml logs -f [service-name]
# 重启某个服务
docker compose -f docker-compose-prod.yaml restart mysql
# 进入容器
docker exec -it mysql bash
docker exec -it elasticsearch bash
# 检查 MySQL 是否启动
docker ps | grep mysql
# 查看 MySQL 日志
docker logs mysql
# 测试连接
mysql -h 127.0.0.1 -P 3306 -uadmin -padmin
如果遇到内存不足问题,可以调整 docker-compose-prod.yaml 中的 ES_JAVA_OPTS:
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 降低内存使用
如果端口被占用,可以修改对应的 docker-compose 文件中的端口映射:
ports:
- "3307:3306" # 将 MySQL 映射到 3307 端口
| 项目 | 本地开发 | Docker Compose 部署 | Kubernetes 部署 |
|---|---|---|---|
| 目的 | 本地开发 | 完整测试/演示 | 生产环境 |
| 中间件 | 可选 dev/prod | 全部 | 全部 |
| 应用服务 | 本地运行 | 容器运行 | Pod 运行 |
| 启动方式 | make env-start | make deploy-compose | make deploy-k8s |
| 数据持久化 | 本地目录 | 本地目录 | PV/PVC |
开发完成后,建议清理不需要的数据:
# 仅停止服务(保留数据)
make env-stop MODE=dev
# 停止并删除所有数据
make env-clean MODE=dev
# 手动清理数据目录
rm -rf mysql/data redis/data elasticsearch/data