Ошибка R10 (Тайм-аут загрузки)-> Веб-процессу не удалось привязаться к $PORT в течение 60 секунд после запуска :Чат-бот Rasa Heroku

Я уже несколько дней безуспешно пытаюсь развернуть бота на героку. У моего бота есть сервер действий, размещенный в другом приложении. Основной бот содержит Dockerfile с содержимым ниже:

# from rasa base image
FROM rasa/rasa:2.8.2-full
# copy all source and the Rasa generated model
COPY. /app

# inform which port will run on
EXPOSE 5005

# script to run rasa core
COPY startup.sh /app/scripts/startup.sh
# script to run rasa shell
COPY shell.sh /app/scripts/shell.sh

USER root
RUN chmod a+x /app/scripts/startup.sh
RUN chmod a+x /app/scripts/shell.sh

WORKDIR /app

ENTRYPOINT []
ENV shell_mode false

# launch script (rasa shell or rasa run)
CMD sh -c 'if [ "$shell_mode" = false ]; then /app/scripts/startup.sh; else  /app/scripts/shell.sh; fi'

После отправки этого контейнера на героку я продолжаю получать следующий журнал:

2021-08-08T05:05:19.003044+00:00 heroku[web.1]: Starting process with command `/bin/bash -o pipefail -c sh\ -c\ \'if\ \[\ \"\false\"\ \=\ false\ \]\;\ then\ /app/scripts/startup.sh\;\ else\ \ /app/scripts/shell.sh\;\ fi\'`
2021-08-08T05:05:22.624829+00:00 app[web.1]: PORT 56161
2021-08-08T05:05:28.172219+00:00 app[web.1]: 2021-08-08 05:05:28 INFO     root  - Starting Rasa server on http://localhost:56161
2021-08-08T05:05:28.198725+00:00 app[web.1]: 2021-08-08 05:05:28 INFO     rasa.model  - Loading model models/20210807-142446.tar.gz...
2021-08-08T05:06:19.182952+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2021-08-08T05:06:19.237369+00:00 heroku[web.1]: Stopping process with SIGKILL
2021-08-08T05:06:19.401953+00:00 heroku[web.1]: Process exited with status 137
2021-08-08T05:06:19.707060+00:00 heroku[web.1]: State changed from starting to crashed

Мой startup.shсодержит:

echo PORT $PORT
rasa run -m models --endpoints heroku-endpoints.yml --cors "*" --enable-api -p $PORT

Что я делаю неправильно? Пожалуйста, помогите.

0
задан 8 August 2021 в 15:15
1 ответ

Я столкнулся с той же проблемой, но при развертывании slackbot на Python. Я использовал пушку, и проблема, похоже, в том, что пушка не привязалась вовремя к порту, предоставленному героку. Это было решено путем добавления параметра --bind :$PORTв Procfile, как указано здесь

Журнал, подтверждающий успешность привязки gunicorn, выглядит следующим образом

2021-09-06T17:43:34.126351+00:00 app[web.1]: [2021-09-06 17:43:34 +0000] [4] [INFO] Starting gunicorn 20.1.0
2021-09-06T17:43:34.127129+00:00 app[web.1]: [2021-09-06 17:43:34 +0000] [4] [INFO] Listening at: http://0.0.0.0:47022 (4)

Я знаю, что это не имеет прямого отношения, но надеюсь, что это поможет вам!

Еще одна вещь, которую вы можете попробовать, это сделать исходящий запрос из вашего скрипта, что временно решило мою проблему, а также заставило приложение использовать порт для отправки некоторого исходящего трафика. Вы можете обнаружить, что запуск приложения занимает слишком много времени и оно не может вовремя привязать себя к порту

0
ответ дан 6 September 2021 в 17:54

Теги

Похожие вопросы