Píldora. Desplegar un monorepo en Heroku
Por defecto cuando queremos desplegar en Heroku, nos encontramos una relación 1:1 entre repositorio de git y aplicación, ya que se espera tener un Procfile en el directorio raíz de tu proyecto con el tipo de procesos y comandos que arrancan la aplicación.
Pero con Heroku Multi Procfile buildpack tenemos la posibilidad de cambiar ese comportamiento, y poder tener varias aplicaciones en un sólo repositorio. Las instrucciones para ello:
Antes asumiremos que tenemos ya una aplicación en heroku en un git remote con nombre heroku
, que hemos movido la primera aplicación del directorio raíz a my-application
y la nueva la hemos creado en my-new-application
.
Instalamos el buildpack en local
$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-multi-procfile.git
En la aplicación de heroku existente añadimos el buildpack
$ heroku buildpacks:add -a my-application heroku-community/multi-procfile
Le asignamos el path del fichero Procfile que queramos asignar a la variable de entorno PROCFILE
$ heroku config:set -a my-application PROCFILE=my-application/Procfile
Lo pusheamos a heroku
$ git push heroku
Para la otra aplicación, la creamos en heroku
$ heroku create -a my-new-application
Añadimos el buildpack en la aplicación de heroku recién creada
$ heroku buildpacks:add -a my-new-application heroku-community/multi-procfile
Le asignamos el path del fichero Procfile que queramos asignar a la variable de entorno PROCFILE
$ heroku config:set -a my-new-application PROCFILE=my-new-application/Procfile
Añadimos el repositorio git remoto heroku-new
$ git remote add heroku-new https://git.heroku.com/my-new-application.git
Y lo pusheamos a heroku
$ git push heroku-new