docker - 如何在 Heroku 上使用 Docker 运行 2 个不同的控制台?
问题描述
我有一个部署在 Heroku 上的 rasa 聊天机器人应用程序。我想在不同的控制台中运行 2 个命令来启动 rasa 及其操作。这是我的码头文件:
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 聊天机器人无需任何操作即可运行。我该如何解决?
解决方案
这是不可能的,因为 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
推荐阅读
- c++ - 如何将结构传递到 Matlab 中重新集成的自动生成的 C++ 代码中
- angular - 在发送之前使用外部脚本更新反应形式的值
- javascript - 动画:未指定`useNativeDriver`。这是一个必需选项,必须明确设置为 `true` 或 `false` #31
- java - 这个类是不可变的吗?
- python - TypeError:元组索引必须是整数或切片,而不是使用 Python Core API 的 str?
- c# - System.ObjectDisposedException: '无法访问已处置的对象
- c++ - 使用子进程可见的 c++ 在 Windows 中设置环境变量
- django - 如何在forms.ModelForm中添加empty_label?
- nomachine-nx - 有没有办法让 nomachine 更好地在终端中显示插入符号?
- vue.js - Vuex 和 Vue 最佳实践问题