- 删除common层业务代码(将通过real-business-logic-generator.js重新生成) - 清理重复的core层生成工具 - 保留完整的企业级core层基础设施(Security/Cache/Tracing/Event/Queue/Health) - 版本号升级到0.3.3 - 项目架构现已完整,接下来专注优化PHP到TypeScript语法转换
153 lines
3.4 KiB
Markdown
153 lines
3.4 KiB
Markdown
# 🐳 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` 实时查看日志
|