Error R10 (tiempo de espera de arranque) -> El proceso web no pudo vincularse a $PORT dentro de los 60 segundos posteriores al inicio: Rasa chatbot Heroku

Error R10 (tiempo de espera de arranque) -> El proceso web no pudo vincularse a $PORT dentro de los 60 segundos posteriores al inicio: Rasa chatbot Heroku

He estado intentando implementar un bot en heroku durante días sin éxito. Mi bot tiene un servidor de acciones alojado en otra aplicación. El bot principal contiene un Dockerfile con el siguiente contenido:

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

Después de insertar este contenedor en heroku, sigo recibiendo el siguiente registro:

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

Mi startup.shcontiene:

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

¿Qué estoy haciendo mal? Por favor ayuda.

Respuesta1

Encontré el mismo problema, pero al implementar un slackbot de Python. Estaba usando gunicorn y el problema parece ser que gunicorn no se vinculó a tiempo al puerto proporcionado por heroku. Esto se resolvió agregando --bind :$PORTuna opción al Procfile como se mencionóaquí

El registro que asegura que el enlace de Gunicorn ha sido exitoso es este

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)

Sé que no está directamente relacionado, ¡pero espero que te ayude!

Otra cosa que puedes intentar es realizar una solicitud saliente desde tu script, lo que resolvió mi problema temporalmente y obliga a la aplicación a usar un puerto para enviar tráfico saliente. Es posible que descubra que el inicio de la aplicación está tardando demasiado y no puede vincularse al puerto a tiempo.

información relacionada