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