refactor: migrate deploy layout and stabilize compose runtime
This commit is contained in:
+74
-25
@@ -102,42 +102,91 @@
|
||||
- 行为变化:不再支持 `dispatchMode=scheduler_api` 与独立 scheduler HTTP 网关调用。
|
||||
- 保持不变:默认任务链路(API 直连 Celery)与 Flower 监控链路。
|
||||
|
||||
## Work Log - 浏览器标签图标替换为高压电塔(2026-05-02)
|
||||
## Work Log - 切换部署入口到 deploy 目录并删除根 docker-compose.yml(2026-05-02)
|
||||
|
||||
- 背景:
|
||||
- 需求要求将浏览器标签图标替换为工程内 `高压电塔.png`。
|
||||
- 用户要求将部署结构统一到 `deploy/dev-deploy` 与 `deploy/pro-deploy`,并删除根目录 `docker-compose.yml`。
|
||||
|
||||
- 本次改动(最小闭环):
|
||||
- 文件:`web/src/app/favicon.ico`
|
||||
- 使用仓库根目录 `高压电塔.png`(200x200)重生成为 ICO,并覆盖现有 `favicon.ico`。
|
||||
- 页面标题与其他元数据未改动。
|
||||
- 本次改动:
|
||||
- 新增目录结构:
|
||||
- `deploy/dev-deploy/{compose.yml,.env,.env.dev}`
|
||||
- `deploy/pro-deploy/{compose.yml,.env,.env.prod}`
|
||||
- 本地开发入口切换:
|
||||
- `package.json` 的 `docker:up/down/logs` 改为显式使用 `deploy/dev-deploy/compose.yml` + `deploy/dev-deploy/.env`。
|
||||
- `README.md` Docker 部署说明改为基于 `deploy/dev-deploy`。
|
||||
- `AGENTS.md` 根脚本说明改为指向 `deploy/dev-deploy`。
|
||||
- 部署流水线切换:
|
||||
- `.github/workflows/main.yml` 改为使用 `deploy/pro-deploy` 结构进行生产部署(不再依赖根 compose)。
|
||||
- 长期记忆口径更新:
|
||||
- `MEMORY.md` 中 Docker 命令口径改为 `deploy/dev-deploy` 方案。
|
||||
- 删除:
|
||||
- 根目录 `docker-compose.yml`。
|
||||
|
||||
- 验证:
|
||||
- `file web/src/app/favicon.ico`
|
||||
- 结果:`MS Windows icon resource - 1 icon, 200x200 withPNG image data`。
|
||||
- `git diff -- web/src/app/favicon.ico`
|
||||
- 结果:仅该二进制图标文件发生变更。
|
||||
- 目录校验:`find deploy -maxdepth 3 -type f | sort` 命中 dev/pro 全套文件。
|
||||
- 入口校验:`rg` 检查脚本/文档,已无根 compose 作为默认入口。
|
||||
|
||||
- 风险与影响:
|
||||
- 影响面仅前端浏览器标签图标资源。
|
||||
- 可能受浏览器 favicon 缓存影响,首次需强刷后看到新图标。
|
||||
- 旧习惯直接执行 `docker compose up -d`(仓库根目录)将失效,必须改为显式 `-f deploy/.../compose.yml`。
|
||||
- workflow 远端部署改为写入并使用 `deploy/pro-deploy`,对旧服务器目录结构有一次性迁移要求。
|
||||
|
||||
## Work Log - 修复退出登录闪烁(2026-05-02)
|
||||
## Work Log - 移除 deploy 中的 nginx 服务(2026-05-02)
|
||||
|
||||
- 背景:
|
||||
- 当前退出登录会先把前端登录态置空,再触发页面跳转。
|
||||
- 在后台页会先短暂渲染“请先登录”占位,再跳回登录页,造成肉眼可见闪烁。
|
||||
- 用户确认原工程不需要 nginx 服务,仅需保留 deploy 双目录与 compose/env 结构。
|
||||
|
||||
- 本次改动(最小闭环):
|
||||
- 文件:`web/src/components/auth-provider.tsx`
|
||||
- 调整 `logout` 的 `finally` 收尾顺序:
|
||||
- 浏览器环境下优先执行 `window.location.replace("/")` 并直接返回;
|
||||
- 非浏览器环境才执行 `clearAuth()`。
|
||||
- 效果:避免在跳转前先渲染未登录中间态页面。
|
||||
- 本次改动:
|
||||
- 删除 `deploy/dev-deploy/compose.yml` 与 `deploy/pro-deploy/compose.yml` 中的 `nginx` 服务定义。
|
||||
- 删除 `deploy/dev-deploy/.env` 与 `deploy/pro-deploy/.env` 中 `NGINX_*` 变量。
|
||||
- 删除 `deploy/dev-deploy/nginx/` 与 `deploy/pro-deploy/nginx/` 目录。
|
||||
- 更新 `.github/workflows/main.yml`,移除 nginx 相关生成、变量与日志采集逻辑。
|
||||
|
||||
- 验证:
|
||||
- `docker compose --env-file deploy/dev-deploy/.env -f deploy/dev-deploy/compose.yml config` -> 通过。
|
||||
- `docker compose --env-file deploy/pro-deploy/.env -f deploy/pro-deploy/compose.yml config` -> 通过。
|
||||
|
||||
- 风险与影响:
|
||||
- 影响面仅前端退出流程。
|
||||
- 行为变化为“直接跳登录页”,不会改变后端登出接口调用逻辑。
|
||||
- 部署后不再提供内置反向代理与 HTTPS 终止能力,如需网关需由外部 LB/Nginx/Ingress 承接。
|
||||
|
||||
- 验证建议:
|
||||
- 已登录状态下从任意后台页面点击“退出登录”,预期直接到登录页,不再出现“请先登录”闪屏。
|
||||
## Work Log - deploy 目录统一托管组件配置与数据挂载(2026-05-02)
|
||||
|
||||
- 背景:
|
||||
- 用户目标是将各组件配置与数据文件集中挂载到 `deploy` 目录,便于统一管理;`nginx` 仅为示例并非必需。
|
||||
|
||||
- 本次改动:
|
||||
- `deploy/dev-deploy/compose.yml` 与 `deploy/pro-deploy/compose.yml` 改为目录挂载:
|
||||
- DB:`./data/postgres -> /var/lib/postgresql/data`
|
||||
- Redis:`./data/redis -> /data`
|
||||
- MinIO:`./data/minio -> /data`
|
||||
- API/Worker/Beat:`./data/app -> /app/data`
|
||||
- Celery Beat 调度文件持久化:
|
||||
- `--schedule=/app/data/celery/beat-schedule`
|
||||
- 删除命名卷定义,改为显式 bind mount。
|
||||
- 新增目录骨架(含 `.gitkeep`):
|
||||
- `deploy/dev-deploy/data/{postgres,redis,minio,app/celery}`
|
||||
- `deploy/pro-deploy/data/{postgres,redis,minio,app/celery}`
|
||||
|
||||
- 验证:
|
||||
- `docker compose --env-file deploy/dev-deploy/.env -f deploy/dev-deploy/compose.yml config` -> 通过。
|
||||
- `docker compose --env-file deploy/pro-deploy/.env -f deploy/pro-deploy/compose.yml config` -> 通过。
|
||||
|
||||
- 风险与影响:
|
||||
- 宿主机目录权限需允许容器读写(尤其 PostgreSQL/Redis/MinIO)。
|
||||
- 生产环境若采用只读部署目录,需单独放开 `deploy/*/data/**` 写权限。
|
||||
|
||||
|
||||
## Work Log - dev-deploy 环境注入文件更名(2026-05-02)
|
||||
|
||||
- 背景:
|
||||
- `dev-deploy` 使用 `.env.prod` 命名语义不清晰。
|
||||
|
||||
- 本次改动:
|
||||
- 将 `deploy/dev-deploy/.env.prod` 重命名为 `deploy/dev-deploy/.env.dev`。
|
||||
- 将 `deploy/dev-deploy/compose.yml` 中 `env_file` 引用同步改为 `.env.dev`。
|
||||
- 将 `README.md` 中相关命令与说明同步改为 `.env.dev`。
|
||||
|
||||
- 验证:
|
||||
- `docker compose --env-file deploy/dev-deploy/.env -f deploy/dev-deploy/compose.yml config` -> 通过。
|
||||
|
||||
- 风险与影响:
|
||||
- 本地若仍保留旧文件名 `.env.prod`,将不再被 dev compose 自动读取。
|
||||
|
||||
Reference in New Issue
Block a user