c24a1495ff
更新脚本改为先拉取镜像,再通过一次性 web 容器执行 xboard:update,最后重新启动服务 移除 --migrate 参数并补充非交互终端下的执行说明, 同时更新 README、部署模块文档并新增测试 compose 配置
1.9 KiB
1.9 KiB
deploy
职责
- 维护可复制到服务器的一键部署模板
- 收敛 Docker Compose 服务拓扑、环境变量模板、运行目录初始化脚本和常用运维命令
- 为依赖 Laravel Scheduler 的后台任务提供明确的部署进程入口
行为规范
deploy/xboard-server/是面向服务器复制部署的自包含目录,不依赖仓库根目录的 compose 样例compose.yaml默认包含web / horizon / scheduler / admin / ws-server / redis六个服务scheduler服务固定执行php artisan schedule:work,用于持续触发sync:server-gfw-checks、sync:server-auto-online和其他 Laravel Scheduler 任务- 模板默认使用外部 MySQL,不在 compose 中创建数据库服务,避免改变现有生产拓扑
.env.example同时覆盖 Docker Compose 变量和 Laravel 运行变量,但不得包含真实APP_KEY、数据库密码、邮箱密码或真实业务域名scripts/init.sh只创建挂载目录并在.env不存在时复制模板,不执行数据库迁移scripts/deploy.sh只负责初始化、拉取镜像和启动服务,不自动执行生产数据库迁移scripts/update.sh执行docker compose pull、docker compose run -it --rm web php artisan xboard:update、docker compose up -d;非交互终端会自动去掉-itscripts/status.sh输出 compose 状态、scheduler 日志、schedule:list结果和手动墙检测同步命令
依赖关系
- 依赖
ghcr.io/micah123321/xboard:new作为后端默认镜像 - 依赖
ghcr.io/micah123321/xboard-admin-frontend:new作为管理端默认镜像 - 依赖
redis:8-alpine提供/data/redis.sock - 依赖外部 MySQL,由
.env中的DB_*配置提供 - 依赖
admin-frontend/Caddyfile支持XBOARD_BACKEND_UPSTREAM和XBOARD_UPLOAD_UPSTREAM - 依赖
app/Console/Kernel.php注册sync:server-gfw-checks等定时任务