1

我正在尝试使用 docker 运行 Botpress。我将我的 Dockerfile 设置如下:

FROM botpress/server:v11_9_5
ADD . /botpress
WORKDIR /botpress
CMD ["./bp"]

构建图像后,我运行docker run my_image:latest启动我的 botpress。但是它无法连接到 Duckling 服务器。

根据日志,

03:20:32.917 Mod[nlu] Couldn't reach the Duckling server , so it will be disabled.
                      For more informations (or if you want to self-host it), please check the docs at
                      https://botpress.io/docs/build/nlu/#system-entities
                       [Error, connect ECONNREFUSED 127.0.0.1:8000]
STACK TRACE
Error: connect ECONNREFUSED 127.0.0.1:8000
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1158:14)

我的 nlu.json 设置如下:

{
  "$schema": "../../assets/modules/nlu/config.schema.json",
  "confidenceTreshold": 0.7,
  "ducklingURL": "https://duckling.botpress.io",
  "ducklingEnabled": true,
  "autoTrainInterval": "30s",
  "preloadModels": false,
  "languageModel": "en",
  "fastTextOverrides": {}
}
4

1 回答 1

0

使用 Docker 映像时,Duckling 与 Botpress 捆绑在一起(预计会在您启动 Botpress 时启动)。有一个环境变量告诉它使用本地版本的小鸭。

如果直接运行镜像,两个进程同时启动。

这里有几个关于如何运行它们的例子:https ://github.com/botpress/botpress/tree/master/examples/docker-compose

基本上:

 command: bash -c "./duckling -p 8000 & ./bp"
于 2019-08-09T16:01:57.607 回答