ChatDev 2.0 Docker Compose 一键部署教程:前后端双容器 + 环境变量配置避坑全清单
【免费下载链接】ChatDevChatDev 2.0: Dev All through LLM-powered Multi-Agent Collaboration项目地址: https://gitcode.com/Dennis_Huang/ChatDev
ChatDev 2.0 是一个 LLM 驱动的多智能体协作开发平台(Dev All through LLM-powered Multi-Agent Collaboration),可以用可视化工作流编排多个 AI Agent 完成软件开发、深度研究、游戏制作等任务。本文带你用Docker Compose 一键部署ChatDev 2.0 的前后端双容器服务,并附上一份环境变量配置避坑全清单,让你一次配通、少踩 90% 的坑。🐳
一、部署架构:前后端双容器是怎么分工的
ChatDev 2.0 的容器化方案由 compose.yml 定义,共两个服务:
| 服务 | 基础镜像 | 端口 | 作用 |
|---|---|---|---|
backend | python:3.12-slim | 6400 | FastAPI 后端 + 工作流执行引擎 |
frontend | node:24-alpine | 5173 | Vite 开发服务器(带热更新) |
后端的 Dockerfile 采用多阶段构建:builder 阶段用uv安装依赖,runtime 阶段只拷贝虚拟环境和运行库,镜像更小、构建更快。前端则由 frontend/Dockerfile 先装node_modules(利用缓存层),再启动npm run dev热更新服务。
二、准备工作:拉取仓库与前置条件
只需两个前置条件:
- 已安装 Docker 和 Docker Compose;
- 拉取项目代码:
git clone https://gitcode.com/Dennis_Huang/ChatDev cd ChatDev💡 注意:项目内置了示例配置 .env.example,部署前必须把它复制为根目录下的
.env文件——compose.yml中env_file同时引用了.env和 .env.docker,缺少.env容器起不来。
三、一键启动:三步完成部署 🚀
第 1 步:创建并填写环境变量
cp .env.example .env打开.env,填入你的大模型服务信息(核心只有两行):
BASE_URL=https://api.openai.com/v1 API_KEY=sk-your-keyBASE_URL兼容 OpenAI、Gemini、Ollama、LM Studio 等多种服务,按需替换即可。
第 2 步:构建并启动双容器
docker compose up --build首次构建会拉取镜像并安装依赖,耐心等待即可。compose.yml里已配置restart: unless-stopped,容器崩溃会自动拉起。
第 3 步:访问验证
- 前端 Web 控制台:
http://localhost:5173 - 后端 API:
http://localhost:6400
四、环境变量配置避坑全清单 ⚠️
这是新手最容易翻车的部分。两个配置文件分工明确,建议对照下表逐项检查:
| 变量 | 所在文件 | 作用 | 避坑要点 |
|---|---|---|---|
BASE_URL/API_KEY | .env | 大模型鉴权,必填 | 不填 Key 容器能启动,但 Agent 一调用模型就报错 |
VITE_API_BASE_URL | .env.docker | 前端请求后端地址 | 必须保持http://backend:6400(容器内服务名),改成localhost是最高频错误 ❌ |
CORS_ALLOW_ORIGINS | .env.docker | 允许的跨域来源 | 已预置http://localhost:5173,若自定义了前端端口需同步修改 |
FRONTEND_PORT | .env.docker | 宿主机映射端口 | 默认 5173,被占用时改为如8080:5173形式,同时更新CORS_ALLOW_ORIGINS |
BACKEND_BIND | .env.docker | 后端监听地址 | 容器内需保持0.0.0.0,否则外部访问不到 6400 端口 |
SERPER_DEV_API_KEY/JINA_API_KEY | .env(可选) | 联网搜索/阅读工具 | 不配置不影响核心功能,工作流用到搜索工具时再开 |
🔑 一句话记忆:
.env管"模型怎么调",.env.docker管"容器之间怎么连"。
VITE_API_BASE_URL之所以关键,是因为前端构建时会读取它作为 API 基地址(见 frontend/vite.config.js),它决定浏览器发出的请求能否到达后端容器。
五、双容器细节:热更新与卷挂载
compose.yml为两个容器都做了目录挂载,方便本地开发:
- 后端:项目根目录挂载到
/app,修改 Python 源码后重启容器即生效; - 前端:
frontend/挂载到容器内,并额外挂载了匿名的node_modules卷——这一笔能防止宿主机目录覆盖容器内的依赖,是前端容器能正常启动的关键,改动 compose.yml 时别删掉这一行。
启动后你会看到chatdev_backend和chatdev_frontend两个容器,日志中后端显示Starting DevAll Workflow Server on 0.0.0.0:6400即代表就绪(入口为 server_main.py)。
六、常见问题快速排查 🔧
| 症状 | 原因与解法 |
|---|---|
| 浏览器打开 5173 一直转圈 / 接口 404 | VITE_API_BASE_URL被改成了localhost:6400,改回http://backend:6400后重新构建 |
| 页面能开但 Agent 调用模型失败 | .env中API_KEY未填或BASE_URL与服务商不匹配;用docker compose logs backend查看报错 |
| 端口被占用 | 修改.env.docker的FRONTEND_PORT与CORS_ALLOW_ORIGINS;后端端口冲突时同时改compose.yml中6400:6400的左侧映射 |
| 构建慢 / 中断 | 多阶段构建依赖缓存层,确认网络能拉取python:3.12-slim与node:24-alpine基础镜像 |
| 改配置不生效 | 环境变量改动需docker compose down && docker compose up --build重新启动才生效 |
日常运维只需几条命令:docker compose ps查看状态、docker compose logs -f跟踪日志、docker compose down停止清理。
写在最后
按本文步骤操作,你只需要3 条命令 + 2 个配置文件就能让 ChatDev 2.0 在你的机器上跑起来:cp .env.example .env→ 填 Key →docker compose up --build。部署完成后,进入http://localhost:5173即可体验拖拽式编排多智能体工作流。更多节点与配置说明,可参考官方文档 docs/user_guide/zh/index.md 与示例工作流 yaml_instance/。
【免费下载链接】ChatDevChatDev 2.0: Dev All through LLM-powered Multi-Agent Collaboration项目地址: https://gitcode.com/Dennis_Huang/ChatDev
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考