2012-03-13 21 views
6

Quiero usar Node.js como servidor Share.js y Ruby para la interfaz. Por lo que sé, Heroku solo permite un proceso web llamado "web". ¿Alguien tiene alguna experiencia tratando de hacer algo como esto?¿Puedo usar dos idiomas en una aplicación Heroku?

+0

Creo (no es una respuesta) que necesitará un proceso de pago por separado para hacer esto. – Phrogz

+0

Usted puede AFAIK tener solo un proceso web. Puede tener procesos de trabajo adicionales, pero lo más probable es que no tengan un puerto válido para escuchar. –

Respuesta

8

No, Heroku detecta el tipo de aplicación cuando inserta su código en Heroku y compila la babosa. Que había necesidad de tenerlos como aplicaciones separadas con un API definida entre los dos (no siempre es algo malo)

ACTUALIZACIÓN: Puede 'pila' buildpacks estos días, por ejemplo, Rubí + PHP por lo que podría tener tanto ejecutados. Consulte https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app para saber cómo usar múltiples buildpacks en la misma aplicación.

+0

No siempre es imposible, por favor vea mi respuesta antes de darse por vencido por completo. – Ali

3

Como advertencia, técnicamente puede instalar dos idiomas en una sola aplicación, pero no estoy seguro si los ejecutará al mismo tiempo. Hice este buildpack combinar NodeJS y PHP (para que pudiera funcionar ronco durante la compilación babosa):

https://github.com/gcpantazis/heroku-buildpack-php-gruntjs

La detección de idioma suele ser bastante tonto; buscará un archivo indicativo de lang, es decir, index.php o un rakefile. Tendrás que cambiar el contenedor de detección para que pase tu código.

Actualización:

Mejor aún, considere el uso https://github.com/ddollar/heroku-buildpack-multi; Te permitirá instalar buildpacks secuencialmente. Dependiendo de su aplicación, es posible que necesite encontrar paquetes de construcción de idioma que no tengan pasos de verificación, es decir, verificar un archivo package.json en una aplicación NodeJS.

1

Sí, es en su mayoría posible, siempre y cuando no estés haciendo algo muy complicado. Una vez implementé una aplicación Flask (Python) que usaba CoreNLP de Stanford, que está escrita en Java. Necesitará heroku-buildpack-multi.

Después de agregar esto, asegúrese de hacer un archivo .buildbacks y agregue todos los paquetes de construcción que necesitará del Heroku github.

Esto evita que Heroku detecte su tipo de aplicación y lo hace instalar todos los buildpacks necesarios desde el archivo .buildpacks.

+0

Ya no es necesario que use .buildpacks: ahora forma parte de la plataforma, https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app –

Cuestiones relacionadas