You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Rasa Action Server遇ModuleNotFound错误求助

问题排查与解决方案

核心原因

Rasa官方的rasa/rasa-sdk镜像仅预装了运行自定义动作所需的rasa-sdk包,不包含完整的Rasa框架。你本地运行时因为已经全局安装了Rasa所以正常,但容器环境默认缺少rasa模块,因此导入rasa.core.tracker_store.TrackerStore会触发ModuleNotFoundError。


具体解决步骤

1. 补全Docker镜像的Rasa依赖

修改你的Action Server Dockerfile,确保安装完整的Rasa包,且版本与你的Rasa服务一致:

FROM rasa/rasa-sdk:3.x.x  # 替换为与Rasa服务匹配的版本号

# 复制依赖清单并安装
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# 复制动作代码
COPY actions /app/actions

同时在requirements.txt中明确指定Rasa版本:

rasa==3.x.x  # 必须与本地及Rasa服务容器使用的版本完全一致
rasa-sdk==3.x.x

2. 验证版本兼容性

确保Rasa与Rasa-SDK的版本严格匹配(主版本、次版本、修订号都要一致),版本不兼容会导致模块导入或功能调用失败。可以通过本地命令rasa --version和rasa-sdk --version确认版本号。

3. 优化代码(可选)

如果你的代码仅使用TrackerStore的基础功能,可尝试替换为rasa-sdk提供的原生接口(比如rasa_sdk.tracker.Tracker),避免依赖完整的Rasa包,减少镜像体积和潜在的版本冲突。

4. 本地预构建镜像排查问题

先手动构建镜像并测试运行,提前发现依赖安装错误:

# 构建镜像
docker build -t my-action-server .
# 运行容器查看日志
docker run --rm my-action-server

5. 检查Docker Compose挂载配置

确认docker-compose.yml中没有将本地目录挂载到容器的Python依赖目录(如/usr/local/lib/python3.x/site-packages),避免覆盖容器中已安装的Rasa包。


内容的提问来源于stack exchange,提问作者CFCIFE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:44:54