【问题标题】:How to run 2 different consoles using Docker on Heroku?如何在 Heroku 上使用 Docker 运行 2 个不同的控制台?
【发布时间】:2020-04-25 15:24:18
【问题描述】:

我有一个部署在 Heroku 上的 rasa 聊天机器人应用程序。我想在不同的控制台中运行 2 个命令来启动 rasa 及其操作。 这是我的 docker 文件:

FROM ubuntu:18.04
ENTRYPOINT []
RUN apt-get update && apt-get install -y python3 python3-pip && python3 -m pip install --no-cache --upgrade pip && pip3 install --no-cache rasa==1.5.3
ADD . /app/
RUN chmod +x /app/start_services1.sh
CMD /app/start_services1.sh
RUN chmod +x /app/start_services2.sh
CMD /app/start_services2.sh

start_services1.sh 文件:

cd app/
rasa run actions "*" --debug -p $PORT

start_services2.sh 文件:

cd app/
rasa run --model models --enable-api --cors "*" --debug -p $PORT

它只运行第二个 .sh 文件。 rasa 聊天机器人无需任何操作即可运行。 我该如何解决?

【问题讨论】:

  • 一个容器只运行一个进程。如果您需要做两件不同的事情,在两个单独的容器中运行它们通常是最佳做法。
  • 这对你有用吗?实际上,我面临着同样的问题。 @Phuc Nguyen

标签: docker heroku rasa


【解决方案1】:

这是不可能的,因为 Heroku 每个进程只公开一个端口。解决方案是部署 2 个应用程序:rasa core 和 rasa action server。
配置heroku-endpoints.yml在Heroku上使用Rasa SDK,即

action_endpoint:
  url: "https://{heroku-app}.herokuapp.com/webhook"

我已经实现了类似的解决方案(实际上部署了 3 个应用程序,因为我还需要自己的 REST 服务),请随时查看https://github.com/perosa/AvatarRasaChatbot

【讨论】:

  • 根据你提供的文档,我只需要创建rasa-avatarbot和rasasdk-avatarbot。对? ^^
猜你喜欢
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 2011-06-30
  • 2017-06-23
  • 1970-01-01
  • 2013-03-09
相关资源
最近更新 更多