新闻详情

新闻详情

首页 / 资讯中心 / 详情

Eigent 开发者模式:如何保留 Docker 数据库并对 server API 进行热重载

发布时间:2026/9/15 17:47:03来源:尧图网络
Eigent 开发者模式:如何保留 Docker 数据库并对 server API 进行热重载
Eigent 开发者模式如何保留 Docker 数据库并对 server API 进行热重载【免费下载链接】eigentEigent: The Open Source Cowork Desktop - Local and Free Alternative to Claude Cowork and Codex项目地址: https://gitcode.com/GitHub_Trending/ei/eigent如果你正在开发 Eigent 的本机后端server/目录下的 FastAPI PostgreSQL 服务会遇到一个典型问题API 代码跑在 Docker 容器里每次改动代码都要重新构建镜像无法边改边测。Eigent 的 server/README_EN.md 提供了一个“Developer Mode”先停止容器中的 API 服务、保留 Postgres 数据库然后在本地用uvicorn --reload启动同一个 API代码保存即生效而数据仍然留在 Docker 卷里不丢失。本文按 README_CN.md 与 README_EN.md 中给出的命令走通这条“保留 Docker 数据库 本地热重载 API”的完整路径。为什么数据库可以“留在 Docker 里”在动手前需要确认数据落在哪里。server/README_EN.md 的 “Data Persistence” 一节说明DB 数据存放在 Docker 卷server_postgres_data对应容器内路径/var/lib/postgresql/data数据库迁移在容器启动时自动执行start.sh中的alembic upgrade head见 server/start.sh。因此在 server/docker-compose.yml 中postgres服务把数据挂载到命名卷postgres_data而api服务只是消费数据库的一个普通进程。只停掉eigent_api容器Postgres 容器与数据卷都保持原样这正是开发者模式的基础。准备条件Docker Desktop已安装并运行且服务已经按 README 的 Quick Start 用docker-compose up --build -d启动过API 容器eigent_api、Postgres 容器eigent_postgres均已存在Python3.12.*server/pyproject.toml 要求3.12,3.13uv本地启动命令均为uv run ...形式Node.js18.0.0 23.0.0仅在你需要同时启动前端时用到。第一步停止容器中的 API保留数据库# 只停 API 容器数据库容器不动 docker stop eigent_api # 确认 Postgres 仍在运行 docker psdocker ps里应还能看到eigent_postgres处于 running 状态。注意这一步只停 API不要执行docker compose stop那会把 API 和 DB 一起停掉属于 README 中“停止/启动全部”的另一组命令与本场景目标不同。第二步本地执行数据库迁移cd server uv run alembic upgrade headREADME 注明这条命令用于“首次或数据库结构变更时”初始化数据库。如果你此前已经用容器跑过容器启动时的alembic upgrade head已完成迁移本地再执行一次是幂等的确认操作拉取到新代码、出现新迁移文件server/alembic/versions/下后必须先跑这一步再启动本地 API。第三步提供数据库连接串并启动热重载 APIDocker 网络内 API 用的是postgresql://postgres:123456postgres:5432/eigent本地进程连的是宿主机端口所以连接串换成localhost:5432# 在当前 shell 导出环境变量方式 A export database_urlpostgresql://postgres:123456localhost:5432/eigent账号密码postgres:123456、库名eigent与 server/docker-compose.yml 中POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB的设置一致可直接使用。server/README_CN.md 还给出方式 B把同样的database_url写入server/.env应用启动时会加载.env见 server/app/core/environment.py 中的load_dotenv()然后执行同一条 uvicorn 命令。启动本地 APIuv run uvicorn main:api --reload --port 3001 --host 0.0.0.0--reload是热重载开关保存server/下的代码后进程自动重启端口3001与容器模式宿主机端口一致README 的 Ports 一节API 宿主机3001→ 容器5678因此切换前后前端代理、浏览器访问地址都不用改。一个容易忽略的点容器模式通过 compose 给 API 注入了redis_url、celery_broker_url等指向 Docker 网络的变量本地进程在 Docker 网络之外。server/.env.example 中专门有一段 “Configuration if not running in docker” 的注释块列出了本地应指向的localhost地址redis_urlredis://localhost:6379/0、celery_broker_urlredis://localhost:6379/0、celery_result_urlredis://localhost:6379/0、SESSION_REDIS_URLredis://localhost:6379/1。由于本场景只停 API、Redis 容器仍在宿主机6379端口运行按需取消这些行注释写入server/.env即可README 开发者模式正文只演示了database_url其余变量请以你的实际报错为准。验证热重载是否生效1. 打开 Swagger UI。浏览器访问http://localhost:3001/docs。本地 uvicorn 与容器 API 用的是同一个宿主机端口能正常列出接口即说明本地进程已经接管了 3001。2. 请求健康检查端点。应用暴露了GET /health定义在 server/main.py返回status、version、server_hash字段server_hash来自本地git log -1 -- server/可用于确认当前跑的确实是你改过的代码而不是旧构建。3. 改一行代码看是否自动重启。修改任意一个路由后保存uvicorn 终端应出现 reload 提示再次访问/health或/docs验证新代码生效。4. 前端联调可选。按 README 的本地模式在项目根目录创建或修改.env.developmentVITE_BASE_URL/api VITE_USE_LOCAL_PROXYtrue VITE_PROXY_URLhttp://localhost:3001然后执行npm install和npm run dev。代理指向的仍是localhost:3001与本地热重载 API 同端口前端请求会直接打到你的本地进程。切回容器模式开发完成后先用 CtrlC 停掉本地 uvicorn避免两个进程抢 3001 端口再执行docker start eigent_api容器启动时start.sh会等待数据库就绪并再次执行alembic upgrade head然后以uvicorn main:api --host 0.0.0.0 --port 5678启动容器内端口 5678 映射到宿主机 3001。README 的 Common Commands 一节也给出了docker compose stop/docker compose start作为“全部停止/启动”的对照命令。边界与限制开发者模式是 README 标注为 “Optional” 的本地开发路径它不替代容器化部署如果你要使用应用触发器外部 Webhook 回调README 明确要求服务器必须有公开可访问的域名本地热重载进程不满足这一条件。容器模式的运行时日志在容器内/app/runtime/log/app.log本地运行时日志文件由应用写到runtime/log/app.log见 server/main.py 的 loguru 配置相对server/工作目录排查问题可查该文件或 uvicorn 终端输出。uv run首次执行会按server/pyproject.toml同步依赖其中camel-ai按[tool.uv.sources]从 git 仓库拉取本地环境需要可访问该源依赖同步失败时优先处理网络与源的问题而不是数据库配置。server/docker-compose.dev.yml 是只含postgresredis的精简编排无 API/celery 服务与本文“停 API 保留 DB”的效果类似可在需要彻底不跑容器 API 时参考其数据库凭据与主 compose 文件一致。【免费下载链接】eigentEigent: The Open Source Cowork Desktop - Local and Free Alternative to Claude Cowork and Codex项目地址: https://gitcode.com/GitHub_Trending/ei/eigent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Home Assistant 入门指南:零基础 10 分钟跑通第一个自动化 2026/9/15 18:23:21

Home Assistant 入门指南:零基础 10 分钟跑通第一个自动化

Home Assistant 入门指南:零基础 10 分钟跑通第一个自动化 【免费下载链接】core :house_with_garden: Open source home automation that puts local control and privacy first. 项目地址: https://gitcode.com/GitHub_Trending/co/core 周五 23 点半&…

阅读更多 →
Apache APISIX syslog 插件详解:将网关访问日志以 RFC 5424 格式推送到 Syslog 服务器 2026/9/15 18:23:21

Apache APISIX syslog 插件详解:将网关访问日志以 RFC 5424 格式推送到 Syslog 服务器

Apache APISIX syslog 插件详解:将网关访问日志以 RFC 5424 格式推送到 Syslog 服务器 【免费下载链接】apisix The Cloud-Native API Gateway 项目地址: https://gitcode.com/GitHub_Trending/ap/apisix syslog 是 Apache APISIX 内置的日志类插件&#xff…

阅读更多 →
Automatisch 集成 Twitter:OAuth 1.0a 连接配置完全指南 2026/9/15 18:23:21

Automatisch 集成 Twitter:OAuth 1.0a 连接配置完全指南

Automatisch 集成 Twitter:OAuth 1.0a 连接配置完全指南 【免费下载链接】automatisch The open source Zapier alternative. Build workflow automation without spending time and money. 项目地址: https://gitcode.com/GitHub_Trending/au/automatisch 本…

阅读更多 →
claude-skills 中的 The Fool:用 5 种结构化推理模式对任何想法发起红队式挑战 2026/9/15 18:23:21

claude-skills 中的 The Fool:用 5 种结构化推理模式对任何想法发起红队式挑战

claude-skills 中的 The Fool:用 5 种结构化推理模式对任何想法发起红队式挑战 【免费下载链接】claude-skills 67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer. 项目地址: https://gitcode.com/GitH…

阅读更多 →
RomM 前端国际化(i18n)完全指南:多语言体系、CI 校验与新增语言实战 2026/9/15 18:23:21

RomM 前端国际化(i18n)完全指南:多语言体系、CI 校验与新增语言实战

RomM 前端国际化(i18n)完全指南:多语言体系、CI 校验与新增语言实战 【免费下载链接】romm A beautiful, powerful, self-hosted ROM manager and player. 项目地址: https://gitcode.com/GitHub_Trending/rom/romm 本文基于 RomM 仓库…

阅读更多 →
AutoGluon 0.4.0 版本全解析:MXNet 到 PyTorch 的深度学习迁移、Tabular 提速与新训练约束 2026/9/15 18:20:21

AutoGluon 0.4.0 版本全解析:MXNet 到 PyTorch 的深度学习迁移、Tabular 提速与新训练约束

AutoGluon 0.4.0 版本全解析:MXNet 到 PyTorch 的深度学习迁移、Tabular 提速与新训练约束 【免费下载链接】autogluon Fast and Accurate ML in 3 Lines of Code 项目地址: https://gitcode.com/GitHub_Trending/au/autogluon 本篇技术指南以 docs/whats_ne…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞