Skip to content

Docker 部署

使用 Docker 可以快速部署 MineShop,适合开发测试和小规模生产环境。

🎯 架构说明

┌─────────────────────────────────────────────────────────────┐
│                      docker-compose                          │
├─────────────────────────────────────────────────────────────┤
│   mineshop-app    │   mysql           │   redis              │
│   PHP + Swoole    │   数据库           │   缓存/队列          │
└─────────────────────────────────────────────────────────────┘

📋 前置要求

  • Docker >= 20.10
  • Docker Compose >= 2.0
  • 至少 2GB 可用内存

🚀 快速部署

1. 克隆项目

bash
git clone https://github.com/since-leoo/mine-shop.git
cd mine-shop

2. 配置环境变量

bash
cp .env.example .env

编辑 .env 文件:

env
# 数据库配置
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=mineshop
DB_USERNAME=root
DB_PASSWORD=your_password

# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379

3. 构建并启动

bash
docker-compose up -d --build

4. 初始化数据库

bash
docker-compose exec app php bin/hyperf.php migrate
docker-compose exec app php bin/hyperf.php db:seed

5. 访问应用

  • 后台地址:http://localhost:9501
  • 默认账号:admin / admin123

📦 Dockerfile 说明

dockerfile
FROM hyperf/hyperf:8.1-alpine-v3.18-swoole

WORKDIR /opt/www

# 安装依赖
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader

# 复制代码
COPY . .

# 优化配置
RUN php bin/hyperf.php vendor:publish

EXPOSE 9501

CMD ["php", "bin/hyperf.php", "start"]

🔧 docker-compose.yml

yaml
version: '3.8'

services:
  app:
    build: .
    ports:
      - "9501:9501"
    volumes:
      - ./runtime:/opt/www/runtime
      - ./storage:/opt/www/storage
    depends_on:
      - mysql
      - redis
    environment:
      - APP_ENV=production

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
      MYSQL_DATABASE: ${DB_DATABASE}
    volumes:
      - mysql_data:/var/lib/mysql

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

volumes:
  mysql_data:
  redis_data:

🔄 常用命令

bash
# 查看日志
docker-compose logs -f app

# 进入容器
docker-compose exec app sh

# 重启服务
docker-compose restart app

# 停止所有服务
docker-compose down

# 清理数据重建
docker-compose down -v
docker-compose up -d --build

⚠️ 注意事项

  1. 数据持久化: 确保 volumes 配置正确
  2. 内存限制: 生产环境建议限制容器内存
  3. 日志管理: 配置日志轮转避免磁盘占满
  4. 安全配置: 不要暴露数据库端口到公网

📚 相关文档

基于 Apache-2.0 许可发布 | 感谢 MineAdmin 提供的优秀基础框架