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

Ruby 我可以在Heroku应用程序中使用两种语言吗?,ruby,node.js,heroku,Ruby,Node.js,Heroku,我想使用Node.js作为Share.js服务器,使用Ruby作为前端。据我所知,Heroku只允许一个称为“web”的面向web的进程。有人有这样做的经验吗?没有,当您将代码推送到Heroku并编译slug时,Heroku会检测应用程序类型。您需要将它们作为独立的应用程序,并在两者之间定义一个API(并不总是坏事) 更新:现在你可以“堆叠”构建包,比如Ruby+PHP,这样你就可以同时执行它们了。有关如何在同一个应用程序中使用多个构建包的信息,请参见。作为警告,从技术上讲,您可以在一个应用程序

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

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


更新:现在你可以“堆叠”构建包,比如Ruby+PHP,这样你就可以同时执行它们了。有关如何在同一个应用程序中使用多个构建包的信息,请参见。

作为警告,从技术上讲,您可以在一个应用程序上安装两种语言,但我不确定是否同时运行它们。我制作这个buildpack是为了结合NodeJS和PHP(这样我就可以在slug编译期间运行Grunt):

语言检测通常是相当愚蠢的;它将查找指示lang的文件,即index.php或rakefile。您必须更改检测箱,以便代码通过

更新:

更好,考虑使用;它将允许您按顺序安装构建包。根据您的应用程序,您可能需要找到没有验证步骤的语言构建包,例如,在NodeJS应用程序中检查

package.json
文件。

是的,我相信,只要您没有做一些非常棘手的事情,就很可能找到。我曾经部署过一个Flask(Python)应用程序,它使用了斯坦福大学的CoreNLP——这都是用Java编写的。你将需要

添加此文件后,请确保创建一个
.buildbacks
文件,并从中添加所需的所有构建包


这可以避免Heroku检测到您的应用程序类型本身,并使其从
.buildpacks
文件安装所有必要的构建包。

我认为(不是答案)您需要一个单独的付费工作进程来完成此操作。您可能只有一个web进程。你可以有额外的工作进程,但它们很可能无法获得有效的监听端口。这并非总是不可能的,请在完全放弃之前查看我的答案。你不再需要使用.buildpacks了-它现在是平台的一部分,