DEPLOYMENT.md 4.0 KB

Filament Admin 部署指南

📋 概述

本项目已优化 Docker 配置,实现:

  • ✅ 国内镜像加速构建
  • ✅ 最小化镜像体积(约 400MB vs 原 800MB+)
  • ✅ 前端资源预编译,开箱即用
  • ✅ 生产环境就绪

🚀 快速部署

方式一:使用预构建镜像(推荐)

1. 在本地构建镜像

# 赋予执行权限
chmod +x build.sh deploy.sh

# 构建镜像(会自动安装依赖、编译前端、生成优化缓存)
./build.sh

2. 传输到服务器

# 将生成的镜像文件传输到服务器
scp filamentadmin.tar.gz user@your-server:/path/to/project/

# 或使用其他传输方式

3. 在服务器上部署

# 解压并加载镜像
gunzip -c filamentadmin.tar.gz | docker load

# 启动服务
./deploy.sh

方式二:直接构建部署

# 一键构建并部署
docker compose -f docker-compose.prod.yml build --no-cache
docker compose -f docker-compose.prod.yml up -d

📦 镜像优化详情

多阶段构建

  1. 前端构建阶段:使用 Node.js Alpine 构建前端资源
  2. 运行时阶段:仅保留 PHP 运行环境

国内镜像源

  • Alpine 源mirrors.aliyun.com
  • NPM 源registry.npmmirror.com
  • Composer 源mirrors.aliyun.com/composer

体积优化

  • 使用 php:8.3-cli-alpine(~100MB)替代 php:8.3-cli(~500MB+)
  • 合并 RUN 命令减少层数
  • 清理 apk/npm/composer 缓存
  • 严格 .dockerignore 排除不必要文件

预编译优化

  • ✅ Laravel 配置缓存
  • ✅ 路由缓存
  • ✅ 视图缓存
  • ✅ 前端资源编译(CSS/JS)
  • ✅ Composer 自动加载优化

🔧 配置说明

环境变量

.env 文件中配置:

APP_NAME="Filament Admin"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://your-domain.com

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=filament_admin
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

端口配置

默认端口映射:5019:8000 可通过修改 docker-compose.prod.yml 调整:

ports:
  - "8080:8000"  # 改为 8080 端口

📊 监控和维护

查看日志

# 实时查看日志
docker compose -f docker-compose.prod.yml logs -f

# 查看最近 100 行日志
docker compose -f docker-compose.prod.yml logs --tail=100

重启服务

# 重启
docker compose -f docker-compose.prod.yml restart

# 停止
docker compose -f docker-compose.prod.yml down

# 重新启动
docker compose -f docker-compose.prod.yml up -d

清理资源

# 删除所有资源
docker compose -f docker-compose.prod.yml down -v

# 删除镜像
docker rmi filamentadmin:latest

🐛 故障排除

问题 1:端口被占用

# 查看端口占用
lsof -i :5019

# 杀死占用进程
kill -9 <PID>

问题 2:权限错误

# 修复权限
sudo chown -R $USER:$USER storage bootstrap/cache
chmod -R 775 storage bootstrap/cache

问题 3:数据库连接失败

检查 .env 中的数据库配置,确保数据库服务可用。

📈 性能优化建议

  1. 生产环境建议

    • 使用外部数据库(MySQL/PostgreSQL)
    • 配置 Redis 缓存
    • 启用 Nginx 反向代理
    • 配置 SSL 证书
  2. 资源限制

    deploy:
     resources:
       limits:
         cpus: '2.0'
         memory: 1G
    

🔐 安全建议

  1. 修改默认 APP_KEY
  2. 设置强数据库密码
  3. 配置防火墙规则
  4. 定期更新依赖:docker compose pull && docker compose up -d

📝 更新流程

# 1. 拉取最新代码
git pull origin main

# 2. 重新构建镜像
./build.sh

# 3. 部署更新
./deploy.sh

📞 技术支持

如遇问题,请检查:

  1. Docker 版本 >= 20.10
  2. Docker Compose 版本 >= 2.0
  3. 磁盘空间 >= 2GB
  4. 内存 >= 1GB

优化前:镜像大小 800MB+,构建时间 10-15 分钟 优化后:镜像大小 ~400MB,构建时间 5-8 分钟(国内镜像)