# 🐳 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` 实时查看日志