Files
wwjcloud-nest-v1/wwjcloud/DOCKER.md
wanwu 8da4047110 feat: v0.3.3 - 清理代码结构,删除common层,保留core层企业级基础设施
- 删除common层业务代码(将通过real-business-logic-generator.js重新生成)
- 清理重复的core层生成工具
- 保留完整的企业级core层基础设施(Security/Cache/Tracing/Event/Queue/Health)
- 版本号升级到0.3.3
- 项目架构现已完整,接下来专注优化PHP到TypeScript语法转换
2025-09-27 03:28:46 +08:00

153 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐳 WWJCloud Docker 开发环境
## 快速开始
### 1. 启动开发环境
```bash
# 使用启动脚本(推荐)
./docker-start.sh
# 或手动启动
docker-compose -f docker-compose.dev.yml up --build -d
```
### 2. 访问服务
- **NestJS API**: http://localhost:3000
- **phpMyAdmin**: http://localhost:8080
- **Redis Commander**: http://localhost:8081
### 3. 数据库信息
- **Host**: localhost
- **Port**: 3306
- **Database**: wwjcloud
- **Username**: root
- **Password**: 123456
## 服务说明
### 应用服务 (app)
- **镜像**: 基于 Node.js 18 Alpine
- **端口**: 3000
- **环境**: 开发模式,支持热重载
- **数据卷**: 代码实时同步
### 数据库服务 (db)
- **镜像**: MySQL 8.0
- **端口**: 3306
- **数据持久化**: mysql_data 卷
- **配置**: 支持中文,优化性能
### 缓存服务 (redis)
- **镜像**: Redis 7 Alpine
- **端口**: 6379
- **数据持久化**: redis_data 卷
- **配置**: 优化内存使用
### 管理工具
- **phpMyAdmin**: 数据库可视化管理
- **Redis Commander**: Redis可视化管理
## 常用命令
### 服务管理
```bash
# 启动服务
docker-compose -f docker-compose.dev.yml up -d
# 停止服务
docker-compose -f docker-compose.dev.yml down
# 重启服务
docker-compose -f docker-compose.dev.yml restart
# 查看服务状态
docker-compose -f docker-compose.dev.yml ps
```
### 日志查看
```bash
# 查看所有服务日志
docker-compose -f docker-compose.dev.yml logs -f
# 查看特定服务日志
docker-compose -f docker-compose.dev.yml logs -f app
docker-compose -f docker-compose.dev.yml logs -f db
docker-compose -f docker-compose.dev.yml logs -f redis
```
### 数据库操作
```bash
# 进入数据库容器
docker-compose -f docker-compose.dev.yml exec db mysql -u root -p123456 wwjcloud
# 导入SQL文件
docker-compose -f docker-compose.dev.yml exec -T db mysql -u root -p123456 wwjcloud < your-file.sql
# 备份数据库
docker-compose -f docker-compose.dev.yml exec db mysqldump -u root -p123456 wwjcloud > backup.sql
```
### 应用开发
```bash
# 进入应用容器
docker-compose -f docker-compose.dev.yml exec app sh
# 安装新依赖
docker-compose -f docker-compose.dev.yml exec app npm install package-name
# 运行测试
docker-compose -f docker-compose.dev.yml exec app npm test
# 构建生产版本
docker-compose -f docker-compose.dev.yml exec app npm run build
```
## 故障排除
### 端口冲突
如果端口被占用,可以修改 `docker-compose.dev.yml` 中的端口映射:
```yaml
ports:
- "3001:3000" # 将应用端口改为3001
- "3307:3306" # 将数据库端口改为3307
```
### 数据持久化
数据存储在Docker卷中删除容器不会丢失数据
```bash
# 查看卷
docker volume ls
# 删除数据卷(谨慎操作)
docker-compose -f docker-compose.dev.yml down -v
```
### 网络问题
如果服务间无法通信,检查网络配置:
```bash
# 查看网络
docker network ls
# 检查容器网络
docker-compose -f docker-compose.dev.yml exec app ping db
```
## 生产环境
生产环境使用 `docker-compose.yml`
```bash
# 构建生产镜像
docker-compose build
# 启动生产环境
docker-compose up -d
```
## 开发建议
1. **代码同步**: 代码修改会自动同步到容器内
2. **依赖安装**: 新依赖需要重启容器生效
3. **数据库迁移**: 使用TypeORM迁移管理数据库结构
4. **环境变量**: 修改 `.env` 文件后重启服务
5. **日志监控**: 使用 `docker-compose logs -f` 实时查看日志