LangBot/docker 目录执行。
Docker 部署
启动前快速确认
需要使用沙箱、stdio MCP 托管、Skill 添加/编辑等能力时,请使用all profile 启动:
langbot:WebUI 和后端服务,默认映射5300和2280-2285。langbot_plugin_runtime:插件运行时,默认映射5401。langbot_box:Box Runtime 控制面,用于创建沙箱容器。
docker compose up,不会启动 langbot_box,stdio MCP、Skill 添加/编辑和部分沙箱能力将不可用。
端口被占用
症状
docker compose up报端口绑定失败。- WebUI 无法访问
http://127.0.0.1:5300。 - 日志中出现
port is already allocated、bind: address already in use等信息。
处理方式
先确认占用端口的进程。Linux/macOS:docker-compose.yaml 中对应端口映射,避免与现有服务冲突。
Box Runtime 未启动或不可用
症状
- 页面或日志提示
No sandbox backend (Docker/nsjail/E2B) is ready。 - stdio 模式 MCP 一直不可用。
- Skill 无法安装、激活或编辑。
常见原因
- 没有使用
--profile all或--profile box启动。 langbot_box没有运行。- 当前用户或 Docker Desktop 无法访问 Docker。
- Linux 主机上当前用户没有 Docker socket 权限。
处理方式
确认langbot_box 已启动:
docker 用户组后重新登录:
Box 根目录挂载失败
症状
- 日志中出现
host_path is outside allowed_mount_roots。 - 日志中出现
host_path must point to an existing directory on the host。 - Docker Desktop 环境中,Box 根目录被解析为
/run/desktop/...后被拒绝。 - stdio MCP 或 Skill 相关沙箱容器无法创建。
原因
langbot_box 会通过宿主机 Docker socket 创建沙箱容器。沙箱容器看到的是宿主机路径,因此 Box 根目录的“宿主机路径”和“容器内路径”必须保持一致,并且该路径必须位于 allowed_mount_roots 内。
处理方式
在LangBot/docker/.env 中设置一个 Docker 能挂载、且不会被 Box 安全规则拒绝的绝对路径:
docker/data/config.yaml,请同步检查:
大量 stdio MCP 启动失败或长时间 connecting
症状
- MCP 状态停留在
connecting或变为error。 docker logs langbot_box中出现Cannot fork。- 同时安装较多 stdio 模式 MCP 后,原本可用的 MCP 也开始启动失败。
原因
stdio MCP 会运行在 Box 沙箱中。默认 Box profile 的 PID 限制较低,同时启动多个npx、uvx MCP 时可能达到沙箱进程数限制。
处理方式
在docker/data/config.yaml 中把 Box profile 调整为资源更高的内置 profile:
connected,并检查工具数量是否大于 0。
MCP 已安装但没有工具或无法连接
症状
- MCP 已出现在列表中,但状态是
error或长期connecting。 - 工具数量为
0。 - 远程 MCP 日志中出现
401 Unauthorized、连接超时或握手失败。
常见原因
- 远程 MCP 需要 API Key 或 OAuth 授权,但未配置。
- MCP 包首次通过
npx或uvx冷启动,依赖下载时间较长。 - 当前 Docker 网络无法访问对应 MCP 服务或包仓库。
- stdio MCP 沙箱资源不足。
处理方式
优先在 LangBot Space 中选择无需密钥或已正确配置密钥的 MCP。对于需要密钥的 MCP,请在安装配置中补齐环境变量、请求头或 URL 参数。 查看运行时日志:镜像标签或镜像源不一致
症状
docker compose ps显示服务仍在使用旧镜像。- 修改了镜像源或标签后,重启仍未生效。
langbot、langbot_plugin_runtime、langbot_box使用了不同镜像标签。
处理方式
保持三个 LangBot 服务的镜像标签一致,然后重新拉取并重建:docker-compose.yaml 中 langbot、langbot_plugin_runtime、langbot_box 三处镜像同时修改。
部署后验证
完成修复后建议做一次完整检查:- 可以正常登录。
- Box / 沙箱能力可用。
- MCP 列表中的目标 MCP 状态为
connected。 - stdio MCP 的工具数量正常显示。
