用途:说明 kairos-mcp 仓库作为 git worktree 使用时,dotenv 文件(.env、.env.dev_simple 等)位于各 worktree 根目录,不与其他 worktree 共享,需处理环境变量与端口冲突。
主要能力与行为:运行 ./scripts/deploy-run-env.sh(经 npm run dev:* 目标如 dev:deploy、dev:restart、dev:test 触发)时,若 .env 缺失,会自动执行 ./scripts/deploy-copy-env-from-main.sh 并继续。该脚本用 git worktree list 第一行解析主 worktree,把其中存在的每个 .env* 常规文件复制到当前 worktree;已在主 worktree 时为空操作。
手动使用:需要从主 worktree 刷新密钥,或在不走 deploy-run-env.sh 但需要 env 的命令前复制时,可在 worktree 仓库根执行 ./scripts/deploy-copy-env-from-main.sh。IDE 中通过 Terminal → Run Task… → Copy .env from main 运行同一脚本(见 .vscode/tasks.json)。脚本名固定为 deploy-copy-env-from-main.sh,仓库中不存在 copy-env-from-main.sh,旧文档应更新。
端口注意:复制 .env* 会带入 PORT、METRICS_PORT 及嵌入应用端口的 URL(如 scripts/env/.env.template 中的 AUTH_CALLBACK_BASE_URL)。同一主机上多个 worktree(或主检出加 worktree)同时运行应用、测试或 MCP 时,每个 worktree 需独立空闲端口对,避免监听冲突。典型 dev 配置至少需改:PORT 设为未被其他 kairos-mcp 检出或服务占用的空闲端口;METRICS_PORT 设为另一空闲端口;AUTH_CALLBACK_BASE_URL 及其他必须匹配应用的 http://localhost:<port> 开发 URL 使用本 worktree 启动服务的主机与 PORT。dev_simple 下 deploy-run-env.sh 在未设置时默认 PORT 为 4300、METRICS_PORT 为 9490(见 ENV=dev_simple),若同主机其他检出已占用,需在本 worktree 的 .env / .env.dev_simple 中覆盖。
限制:若每个 worktree 在同一机器运行完整 Compose 栈,共享服务(Qdrant、Valkey、Keycloak 等)的发布端口也可能冲突,解决方式与 app PORT 无关,可能需要不同 Compose 项目名、profile 或主机端口覆盖,并非全部由 .env 控制。相关:kmcp-dev-build-test 描述完整 npm run dev:deploy 后 npm run dev:test 流程;scripts/README.md 为脚本索引。