Appearance
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-shop2. 配置环境变量
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=63793. 构建并启动
bash
docker-compose up -d --build4. 初始化数据库
bash
docker-compose exec app php bin/hyperf.php migrate
docker-compose exec app php bin/hyperf.php db:seed5. 访问应用
- 后台地址:
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⚠️ 注意事项
- 数据持久化: 确保 volumes 配置正确
- 内存限制: 生产环境建议限制容器内存
- 日志管理: 配置日志轮转避免磁盘占满
- 安全配置: 不要暴露数据库端口到公网