MagicPot / docker-README.md
zhanglei
fix voice
ab5909a
|
Raw
History Blame Contribute Delete
3.25 kB

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(可自定义)

故障排除

常见问题

  1. 端口被占用

    # 检查端口使用情况
    netstat -an | grep :8080
    # 或使用其他端口
    docker run -d -p 3000:80 --name magicpot magicpot-game
    
  2. 容器启动失败

    # 查看详细错误信息
    docker logs magicpot
    
    # 检查容器状态
    docker ps -a
    
  3. 游戏无法正常运行

    • 确保浏览器支持Web Speech API
    • 检查麦克风权限设置
    • 尝试使用HTTPS(语音识别需要)

性能优化

  1. 镜像大小优化

    • 使用alpine版本nginx(已实现)
    • 清理不必要的文件(.dockerignore已配置)
  2. 运行时优化

    # 限制内存使用
    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(仅开发环境需要)