本项目已优化 Docker 配置,实现:
# 赋予执行权限
chmod +x build.sh deploy.sh
# 构建镜像(会自动安装依赖、编译前端、生成优化缓存)
./build.sh
# 将生成的镜像文件传输到服务器
scp filamentadmin.tar.gz user@your-server:/path/to/project/
# 或使用其他传输方式
# 解压并加载镜像
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
mirrors.aliyun.comregistry.npmmirror.commirrors.aliyun.com/composerphp:8.3-cli-alpine(~100MB)替代 php:8.3-cli(~500MB+)RUN 命令减少层数apk/npm/composer 缓存.dockerignore 排除不必要文件在 .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
# 查看端口占用
lsof -i :5019
# 杀死占用进程
kill -9 <PID>
# 修复权限
sudo chown -R $USER:$USER storage bootstrap/cache
chmod -R 775 storage bootstrap/cache
检查 .env 中的数据库配置,确保数据库服务可用。
生产环境建议
资源限制
deploy:
resources:
limits:
cpus: '2.0'
memory: 1G
APP_KEYdocker compose pull && docker compose up -d# 1. 拉取最新代码
git pull origin main
# 2. 重新构建镜像
./build.sh
# 3. 部署更新
./deploy.sh
如遇问题,请检查:
优化前:镜像大小 800MB+,构建时间 10-15 分钟 优化后:镜像大小 ~400MB,构建时间 5-8 分钟(国内镜像)