MagicPot / docker-README.md
zhanglei
fix voice
ab5909a
|
Raw
History Blame Contribute Delete
3.25 kB
# 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(仅开发环境需要)