MagicPot Docker 部署指南
项目简介
MagicPot是一个卡通手绘风格的语音交互魔法锅游戏,已经Docker化便于部署。
快速开始
1. 构建Docker镜像
docker build -t magicpot-game .
2. 运行容器
docker run -d -p 8080:80 --name magicpot magicpot-game
3. 访问游戏
打开浏览器访问:http://localhost:8080
Docker命令详解
构建镜像
# 基础构建
docker build -t magicpot-game .
# 指定标签版本
docker build -t magicpot-game:v1.0 .
# 查看镜像
docker images | grep magicpot
运行容器
# 后台运行(推荐)
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
容器管理
# 查看运行中的容器
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 文件:
version: '3.8'
services:
magicpot:
build: .
ports:
- "8080:80"
restart: unless-stopped
container_name: magicpot-game
使用Docker Compose运行:
# 构建并启动
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(可自定义)
故障排除
常见问题
端口被占用
# 检查端口使用情况 netstat -an | grep :8080 # 或使用其他端口 docker run -d -p 3000:80 --name magicpot magicpot-game容器启动失败
# 查看详细错误信息 docker logs magicpot # 检查容器状态 docker ps -a游戏无法正常运行
- 确保浏览器支持Web Speech API
- 检查麦克风权限设置
- 尝试使用HTTPS(语音识别需要)
性能优化
镜像大小优化
- 使用alpine版本nginx(已实现)
- 清理不必要的文件(.dockerignore已配置)
运行时优化
# 限制内存使用 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
开发环境
如果需要在开发环境中运行:
# 本地开发(不使用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(仅开发环境需要)