heroku - Use diferentes Procfile en desarrollo y producción
sinatra rack (2)
Tengo una aplicación casera de Sinatra para la que pretendo usar Heroku para alojarla.
Utilizo capataz y escopeta en desarrollo, con el siguiente archivo de registro:
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV
Funciona muy bien con el desarrollo y la producción. Pero la cuestión es que no quiero usar la escopeta en producción porque es demasiado lenta.
¿Podemos usar configuraciones separadas de Procfile para dev y prod?
Aquí hay una manera de manejarlo con un archivo de Procfile y variables de entorno. Estoy usando esto en Heroku.
Establece tu entorno:
export WEB_START_COMMAND=''node index.js''
export WORKER_START_COMMAND=''node worker.js''
El archivo de proceso:
web: eval ''$WEB_START_COMMAND''
worker: eval ''$WORKER_START_COMMAND''
Exportar diferentes comandos de inicio en su servidor y entornos de desarrollo.
Podrías usar dos Procfiles (por ejemplo, Procfile y Procfile.dev ) y usar la opción foreman s -f para seleccionar uno diferente para usar en dev:
En dev ( Procfile.dev contiene su proceso de web de shotgun ):
foreman start -f Procfile.dev
En producción, el foreman start recuperará el Procfile normal.
Alternativamente, podrías crear un directorio bin en tu aplicación con un script para iniciar el servidor web apropiado según $RACK_ENV (una idea que encontré en un comentario hecho por el creador de Foreman , así que vale la pena considerarlo).