# MagicPot Docker 部署指南 ## 项目简介 MagicPot是一个卡通手绘风格的语音交互魔法锅游戏,已经Docker化便于部署。 ## 快速开始 ### 1. 构建Docker镜像 ```bash docker build -t magicpot-game . ``` ### 2. 运行容器 ```bash docker run -d -p 8080:80 --name magicpot magicpot-game ``` ### 3. 访问游戏 打开浏览器访问:http://localhost:8080 ## Docker命令详解 ### 构建镜像 ```bash # 基础构建 docker build -t magicpot-game . # 指定标签版本 docker build -t magicpot-game:v1.0 . # 查看镜像 docker images | grep magicpot ``` ### 运行容器 ```bash # 后台运行(推荐) docker run -d -p 8080:80 --name magicpot magicpot-game # 前台运行(调试用) docker run -p 8080:80 --name magicpot magicpot-game # 自定义端口 docker run -d -p 3000:80 --name magicpot magicpot-game # 运行后访问:http://localhost:3000 ``` ### 容器管理 ```bash # 查看运行中的容器 docker ps # 查看所有容器 docker ps -a # 停止容器 docker stop magicpot # 启动容器 docker start magicpot # 重启容器 docker restart magicpot # 删除容器 docker rm magicpot # 查看容器日志 docker logs magicpot # 进入容器(调试用) docker exec -it magicpot sh ``` ## Docker Compose(可选) 创建 `docker-compose.yml` 文件: ```yaml version: '3.8' services: magicpot: build: . ports: - "8080:80" restart: unless-stopped container_name: magicpot-game ``` 使用Docker Compose运行: ```bash # 构建并启动 docker-compose up -d # 停止 docker-compose down # 查看日志 docker-compose logs ``` ## 技术栈 - **Base Image**: nginx:alpine - **Web Server**: Nginx - **Frontend**: HTML5 + CSS3 + JavaScript - **Features**: 语音识别、Canvas动画、粒子系统 ## 配置说明 ### Nginx配置 - 静态文件缓存:1年 - HTML文件缓存:1小时 - 启用Gzip压缩 - 安全头设置 - 支持音频文件(.mp3) ### 端口配置 - 容器内部端口:80 - 建议外部端口:8080(可自定义) ## 故障排除 ### 常见问题 1. **端口被占用** ```bash # 检查端口使用情况 netstat -an | grep :8080 # 或使用其他端口 docker run -d -p 3000:80 --name magicpot magicpot-game ``` 2. **容器启动失败** ```bash # 查看详细错误信息 docker logs magicpot # 检查容器状态 docker ps -a ``` 3. **游戏无法正常运行** - 确保浏览器支持Web Speech API - 检查麦克风权限设置 - 尝试使用HTTPS(语音识别需要) ### 性能优化 1. **镜像大小优化** - 使用alpine版本nginx(已实现) - 清理不必要的文件(.dockerignore已配置) 2. **运行时优化** ```bash # 限制内存使用 docker run -d -p 8080:80 -m 512m --name magicpot magicpot-game # 设置CPU限制 docker run -d -p 8080:80 --cpus="1.0" --name magicpot magicpot-game ``` ## 开发环境 如果需要在开发环境中运行: ```bash # 本地开发(不使用Docker) npm install npm run dev # 或使用Python python -m http.server 8000 ``` ## 版本信息 - Docker Image: magicpot-game:latest - Nginx Version: alpine - Node.js Version: >=14.0.0(仅开发环境需要)