如何配置要为 dockerized Rasa-NLU 公开的端口

How to configure the port to be exposed for dockerized Rasa-NLU

我是 Rasa 和 docker 的新手。 我尝试 dockerize Rasa-NLU 包括以下步骤: 说明来自 here

  1. Git 克隆了最新的 Rasa-NLU
  2. 复制Dockerfile_full(从/docker内)到根目录
  3. 已将 config_default.jsonDockerfile_full 中指定的端口号从默认值 (5000) 更改为 5048。
  4. 构建使用:docker build -t rasa_nlu .

  5. 运行 与默认 (5000) 端口不同的端口 (5048) 上的 docker。

但是,控制台中记录了以下内容:

INFO:rasa_nlu.data_router:Logging requests to '/app/logs/rasa_nlu_log-20170928-091903-1.log'. INFO:__main__:Started http server on port 5000 2017-09-28 09:19:03+0000 [-] Log opened. 2017-09-28 09:19:03+0000 [-] Site starting on 5000 2017-09-28 09:19:03+0000 [-] Starting factory <twisted.web.server.Site instance at 0x7fbab0bfdd40>

如果我尝试使用 CURL 在本地访问 Rasa 端点,我会收到 connection reset 错误。在 docker 容器(使用 docker exec)中检查时证实了我对错误端口被引用的怀疑,它是端口 5000 上的 运行。

谁能帮我弄清楚我到底哪里出错了,应该在哪里配置端口号?

提前致谢!

Dockerfile_full 期望配置文件位于 sample_configs 文件夹中。另外 Dockerfile_full 使用 config_spacy_duckling.json 配置文件。因此,请确保替换 docker 文件中的以下参考。您可以更改它复制的配置文件或更改正确文件中的端口配置。

COPY sample_configs/config_spacy_duckling.json ${RASA_NLU_HOME}/config.json

忽略这一点,为什么要更改两个位置的端口?您需要做的就是在 docker 运行 或撰写命令中更改它。

docker run -p 5048:5000 rasa/rasa_nlu:latest-full

sample_configs/config_spacy_duckling.json 中添加和更改端口。如果您看到 Dockerfile 这是复制的配置,它没有定义端口。所以一旦你将端口放入其中并构建它就会工作