File size: 3,250 Bytes
ab5909a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | # 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(仅开发环境需要)
|