Как запустить 2 разные консоли, используя Docker на Heroku? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть приложение rasa chatbot, которое развернуто на Heroku. Я хочу запустить 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 файл. Чат-раса запускается без действий. Как я могу решить это?

1 Ответ

1 голос
/ 25 апреля 2020

это невозможно, поскольку Heroku предоставляет только один порт для каждого процесса. Решение состоит в том, чтобы развернуть 2 приложения: ядро ​​rasa и сервер действий rasa.
Настройте heroku-endpoints.yml для использования Rasa SDK на Heroku, ie

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

Я уже реализовал подобное решение (фактически развернуло 3 приложения, так как мне также требовался собственный REST-сервис), не стесняйтесь взглянуть https://github.com/perosa/AvatarRasaChatbot

...