Worktree Manager — 工作树管理器
v1.0.0管理基于Docker的开发实例和git工作树。处理应用容器生命周期、数据库种子和代理路由激活。需要mysql-manager以及...
运行时依赖
安装命令
点击复制技能文档
Worktree Manager 管理Docker应用实例和git工作树用于本地开发。每个实例都有自己的docker-compose栈(后端+前端),隔离的git分支和.env.worktree-文件。MySQL和nginx-proxy由各自的插件单独管理。
前置条件 首先启动以下内容(顺序很重要): proxy-manager start — 创建共享的Docker网络(nginx-proxy_net) mysql-manager start — 启动共享的MySQL容器
项目架构 project/ ├── docker-compose.yml # 应用栈模板(后端+前端) ├── run.sh # 本插件的入口点(复制到项目根目录) ├── .env.base # 主实例环境变量 ├── .env.worktree- # 每个工作树环境变量(git忽略) └── .worktrees/ └── / # git工作树(git忽略) 主实例 → .env.base,项目根目录 工作树 → .env.worktree-,在.worktrees/处检出 URL: http://.frontend.localhost / http://.backend.localhost
命令 所有命令从项目根目录运行: ./run.sh list # 显示所有实例+MySQL/代理状态 ./run.sh start [main|] # 初始化数据库,启动容器,连接代理 ./run.sh stop [main|] # 停止容器(数据库持久) ./run.sh restart [main|] # 停止然后启动 ./run.sh logs [main|] # 跟踪容器日志 ./run.sh create-worktree # git工作树+分支+环境变量文件 ./run.sh remove-worktree # 停止容器+删除数据库+删除工作树
如何执行任务 完整环境设置(第一次) proxy-manager/run.sh start # 网络+nginx-proxy mysql-manager/run.sh start # MySQL ./run.sh start main # 主应用实例 创建一个新工作树并启动它 ./run.sh create-worktree — 创建分支worktree/,目录.worktrees/,环境变量文件 ./run.sh start — 从主快照初始化数据库,启动容器,激活代理路由 URL在结束时报告 停止一个实例 ./run.sh stop 删除一个工作树(具有破坏性——始终先确认) 确认与用户:“删除工作树''?删除容器,数据库,git工作树(分支worktree/),和.env.worktree-。” ./run.sh remove-worktree 列出所有实例 ./run.sh list
什么是start 检查MySQL容器是否运行(如果没有则退出错误) CREATE DATABASE IF NOT EXISTS用于实例 对于非主实例:从codai_main转储到实例数据库 docker compose up --build -d docker network connect — 代理到实例网络(激活路由)
规则 始终在启动前检查./run.sh list — 它显示MySQL/代理状态 始终在remove-worktree之前确认 — 它是不可逆的 启动后,打印前端和后端URL 如果./run.sh不可执行:chmod +x run.sh .env.worktree-*文件和.worktrees/目录必须被git忽略
配置变量 默认值 目的 MYSQL_CONTAINER codai_db MySQL容器名称 MYSQL_ROOT_PASS secret MySQL根密码 MYSQL_MAIN_DB codai_main 快照源数据库 PROXY_CONTAINER codai_nginx_proxy nginx-proxy容器名称 PROJECT_PREFIX codai-dev Docker Compose项目前缀
相关插件 proxy-manager — nginx-proxy生命周期和网络管理(首先启动) mysql-manager — MySQL生命周期和数据库管理(第二启动)