SuperAPI AI 工具集

eve-local-dev-loop

部署与运维

查看项目

更新于 10-15 22:37

技能介绍

用途:在本地用 Docker Compose 运行并测试 Eve 兼容应用,验证通过后交接给 Eve 做 staging 部署。

前提:仓库中存在 compose.yaml 或 docker-compose.yml;Eve 清单 .eve/manifest.yaml 反映相同的服务与端口。

本地运行:docker compose up -d 启动本地服务(数据库与迁移);cd apps/api && npm run dev 以开发模式启动 API(热重载);cd apps/web && npm run dev 启动 Web(Vite 开发服务器,带 /api 代理);docker compose logs -f 查看数据库日志;docker compose down -v && docker compose up -d 重置数据库(删除、重建并迁移)。

推荐配置:本地使用 Eve-migrate 镜像以获得与 staging 一致的迁移行为。示例 compose 定义 db(postgres:16-alpine,端口 5432,含健康检查)与 migrate(ghcr.io/eve-horizon/eve-migrate:latest,挂载 ./db/migrations,依赖 db 健康)。eve-migrate 在本地与 staging 使用同一运行器,迁移记录在 schema_migrations 中,幂等、带校验和、事务化;SQL 文件使用时间戳前缀,如 20260312000000_initial_schema.sql。新增迁移文件后手动执行:docker compose run --rm migrate。

保持 Compose 与清单同步:服务名与暴露端口需一致;Compose 的 db 对应清单的托管数据库,本地为容器、staging 由 Eve 提供;Compose 的 migrate 对应清单的 migrate 作业,均使用 eve-migrate 并挂载 db/migrations/。生产公开服务需在清单中设置 x-eve.ingress.public: true;清单使用 ${secret.KEY},本地值放在 .eve/dev-secrets.yaml。

本地环境变量:为 API 创建 .env(如 DATABASE_URL=postgresql://app:app@localhost:5432/myapp);Compose 优先用 .env,清单插值用 .eve/dev-secrets.yaml;不要提交密钥,将 .eve/dev-secrets.yaml 加入 .gitignore;Vite 开发服务器在 vite.config.ts 中配置代理,将 /api 转发到 http://localhost:3000,与生产 nginx 代理模式一致。

晋升到 staging:eve profile use staging;eve auth status;eve secrets set API_KEY "value" --project proj_xxx;eve env deploy staging --ref main --repo-dir .(需 40 位 SHA 或可解析的 ref);若环境配置了流水线会触发流水线,使用 --direct 可绕过流水线直接部署。跟踪作业:eve job list --phase active、eve job follow <job-id>、eve job result <job-id>。

本地正常但 staging 失败时:重新核对清单与 Compose 的一致性;用 eve secrets list 确认密钥存在;用 eve job diagnose <job-id> 查看失败详情。

限制:资料未提供该技能的安装方式、收费与价格、支持平台范围及具体效果数据,暂未提供。