我可以在Heroku应用程序中使用两种语言吗?

我想使用Node.js作为Share.js服务器和Ruby作为前端。 据我所知,Heroku只允许一个名为“web”的面向web的进程。 有没有人有一些经验试图做这样的事情?

不,Heroku会在您将代码推送到Heroku时检测应用程序types,并编译slu。。 你需要把它们作为独立的应用程序,在两者之间定义一个API(并不总是一件坏事)

更新:你可以'堆叠'buildpacks这些天,例如Ruby + PHP,所以你可以执行。 请参阅https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app ,了解如何在同一应用中使用多个buildpack。

作为一个警告,你在技术上可以在一个应用程序上安装两种语言 – 但我不知道同时运行它们。 我做了这个buildpack来结合NodeJS和PHP(所以我可以在slug编译期间运行Grunt):

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

语言检测通常相当愚蠢, 它会寻找一个文件指示lang,即index.php或rakefile。 你将不得不改变检测箱,以便你的代码通过。

更新:

更好的是,考虑使用https://github.com/ddollar/heroku-buildpack-multi ; 它会让你顺序安装buildpack。 根据您的应用程序,您可能需要find没有validation步骤的语言构buildpackage.json ,即在NodeJS应用程序中检查package.json文件。

是的,只要你不做一些非常棘手的事情,我相信大部分是可能的。 我曾经部署了一个Flask(Python)应用程序,使用斯坦福大学的CoreNLP – 这些都是用Java编写的。 你将需要heroku-buildpack-multi 。

添加完成后,请确保生成一个.buildbacks文件,并添加Heroku github所需的所有buildpack。

这避开了Heroku检测你的应用types本身,并使其从.buildpacks文件安装所有必要的buildpack。