Saltar al contenido

Implemente dos aplicaciones heroku separadas desde el mismo repositorio de git

Solución:

Desafortunadamente, la solución sugerida por rdegges ya no funciona. Ver:

El tipo de proceso web es especial, ya que es el único tipo de proceso que recibirá tráfico HTTP de los enrutadores de Heroku. Otros tipos de procesos se pueden nombrar arbitrariamente.

de la documentación de Heroku. Entonces no podrás tener api y web en un Procfile tanto exponiendo aplicaciones web.

Solución actualizada

La forma correcta de abordar esto es utilizar este paquete de compilación proporcionado por el equipo de Heroku: paquete de compilación Heroku Multi Procfile:

Imagine que tiene una única base de código, que tiene algunas aplicaciones diferentes dentro … o al menos la capacidad de ejecutar algunas aplicaciones diferentes. ¿O tal vez eres Google con tu repositorio mono?

En cualquier caso, ¿cómo gestiona esto en Heroku? Tu no. Las aplicaciones de Heroku asumen un repositorio por aplicación.

Ingrese al paquete de compilación Multi Procfile, donde cada aplicación obtiene un Procfile.

He estado usando este paquete de compilación durante varios meses en un repositorio usando espacios de trabajo de hilo (múltiples aplicaciones Node y React en un repositorio) y todo funciona bien.

Entiendo su pregunta es que tiene un repositorio de Git, que contiene dos programas completamente separados: un servidor API y un servidor web.

Con esta suposición en mente, esto es lo que querrá hacer, paso a paso:

  1. Vaya a la carpeta de su proyecto.
  2. Definir un Procfile en la raíz de su proyecto. Esto le dirá a Heroku cómo ejecutar su servidor web y su servidor API.

Así es como puede querer su Procfile mirar (un ejemplo):

web: node web/index.js
api: node api/index.js

En mi ejemplo anterior: estoy definiendo dos tipos de dynos de Heroku, uno llamado web y uno llamado api. Para cada uno, deberá indicarle a Heroku qué comando ejecutar para iniciar el servidor apropiado. En este ejemplo, ejecutaría node web/index.js para poner en marcha mi sitio web, y node api/index.js para poner en marcha mi servicio API.

  1. Cree dos nuevas aplicaciones de Heroku. Puedes hacer esto ejecutando heroku create <desired-app-name> --remote <desired-app-name> varias veces. NOTA: Los --remote flag le dirá a Heroku que cree un control remoto Git para cada una de sus aplicaciones en el mismo repositorio.

  2. A continuación, deberá decirle a Heroku que ejecute su aplicación web real en una aplicación de Heroku y su servicio de API en otra aplicación de Heroku. Puede hacer esto utilizando la CLI de Heroku:

    $ heroku ps:scale web=1 --remote webserver-app-name
    $ heroku ps:scale api=1 --remote apiserver-app-name
    

Estos comandos:

  • Ejecute un solo dinamómetro web para la aplicación Heroku de su servidor web.
  • Ejecute un solo dinamómetro API para su aplicación apiserver Heroku.

Como puede ver arriba, usando el ps:scale comando puede controlar qué tipo de comandos ejecutará Heroku desde su Procfiley cuántas instancias de cada uno le gustaría tener.

¡Ojalá esto ayude!

Cuando tenga que separar la aplicación, simplemente puede insertar el subárbol del repositorio en cada una.

Configurar controles remotos una vez

heroku git:remote --remote heroku-client -a client-app
heroku git:remote --remote heroku-server -a server-app

Y luego puede implementar empujando el subárbol al control remoto

git subtree push --prefix client heroku-client master
git subtree push --prefix server heroku-server master

(donde –prefix apunta a la carpeta raíz de la aplicación)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *