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(仅开发环境需要)