heroku sinatra rack foreman shotgun

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).