instalar - Heroku procfile error "No hay tal tipo de proceso web definido en Procfile"
heroku nodejs (4)
Esta es la primera vez que uso Heroku
, y el hecho de que no pueda encontrar a nadie en Google con un error similar a este significa que es probable que esté haciendo algo mal:
Estoy siguiendo la guía de configuración básica de Heroku aquí para implementar mi aplicación NodeJS en la web. Estoy desplegado y tratando de verificar mis dynos
con:
heroku ps:scale web=1
Sin embargo, cuando hago esto me sale el error:
Scaling web dynos... failed
! No such process type web defined in Procfile.
Cuando corro heroku ps
no consigo nada devuelto.
En el directorio raíz de mi aplicación, tengo un archivo llamado Procfile
(sin extensión) que contiene:
web: node app.js
La aplicación se ejecuta localmente sin problemas (utilizando foreman start
).
La pregunta es ¿por qué ocurre esto? ¿Cómo puedo remediarlo? ¿Debería siquiera importarme?
Acabo de tener este problema, pero en mi caso, me faltaba un espacio entre la web:
y el comando de inicio en el archivo Procfile.
Por ejemplo, me equivoqué de esta manera:
web:gunicorn run:app
Se corrigió agregando un espacio después de los dos puntos:
web: gunicorn run:app
Encontré la solución yo mismo, desde aquí: https://.com/a/7641259/556006
Tuve el mismo problema y acabo de encontrar lo que estaba mal. Accidentalmente llamé al archivo ProcFile en lugar de Procfile. El simple cambio de nombre de ese archivo no fue recogido por git. Tuve que hacer primero un git rm ProcFile -f y luego agregar un nuevo Procfile (con el nombre correcto). Después de eso, fue empujado correctamente por git y fue recogido correctamente por Heroku.
Los procesos que se ejecutarán en Heroku se definen en un archivo de texto simple llamado: Procfile
El Perfil contiene una línea que define cómo se ejecutará cada uno de los procesos en su aplicación. Este será específico para cada idioma y se pueden ver ejemplos en el artículo de Heroku Devcenter Procfile
Tenga en cuenta que el Procfile debe estar escrito exactamente, con la primera letra en mayúscula y todas las demás en minúscula. No hay una extensión de archivo para el Procfile. Este Procfile debe colocarse en la raíz de su proyecto y comprometerse con su repositorio local de git antes de hacer un git push heroku master.
Si escribe incorrectamente el nombre del archivo después de haberlo agregado a git, puede cambiarle el nombre usando git con el comando
git mv ProcFile Procfile
El archivo renombrado se almacenará para que pueda enviar el archivo modificado con el comando
git commit -m "corrected name of Procfile"
Supongo que nunca has hecho git push heroku master
, es decir, Heroku nunca ha visto tu código.