Fehler R10 (Boot-Timeout) -> Die Bindung des Webprozesses an $PORT ist innerhalb von 60 Sekunden nach dem Start fehlgeschlagen: Rasa-Chatbot Heroku

Fehler R10 (Boot-Timeout) -> Die Bindung des Webprozesses an $PORT ist innerhalb von 60 Sekunden nach dem Start fehlgeschlagen: Rasa-Chatbot Heroku

Ich versuche seit Tagen erfolglos, einen Bot auf Heroku bereitzustellen. Mein Bot hat einen Action-Server, der auf einer anderen App gehostet wird. Der Hauptbot enthält eine Docker-Datei mit folgendem Inhalt:

# 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'

Nachdem ich diesen Container auf Heroku gepusht habe, erhalte ich immer das folgende Protokoll:

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

Mein startup.shInhalt:

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

Was mache ich falsch? Bitte helfen Sie.

Antwort1

Ich bin auf dasselbe Problem gestoßen, allerdings beim Bereitstellen eines Python-Slackbots. Ich habe Gunicorn verwendet und das Problem scheint zu sein, dass Gunicorn sich nicht rechtzeitig an den von Heroku bereitgestellten Port gebunden hat. Dies wurde behoben, indem --bind :$PORTwie erwähnt eine Option zur Procfile hinzugefügt wurde.Hier

Das Protokoll, das sicherstellt, dass Gunicorns Bindung erfolgreich war, ist dieses

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)

Ich weiß, dass es nicht direkt damit zusammenhängt, aber ich hoffe, dass es Ihnen hilft!

Sie können auch versuchen, eine ausgehende Anfrage aus Ihrem Skript zu stellen. Das hat mein Problem vorübergehend gelöst und die Anwendung gezwungen, einen Port zum Senden von ausgehendem Datenverkehr zu verwenden. Möglicherweise stellen Sie fest, dass der Start der Anwendung zu lange dauert und sie sich nicht rechtzeitig an den Port binden kann.

verwandte Informationen