我可以在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。