2012-03-13 75 views
6

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

+0

我认为(不是答案),您将需要一个付费的单独的工作进程来做到这一点。 – Phrogz 2012-03-13 18:50:01

+0

你可以AFAIK只有一个网络进程。你可以有额外的工作进程,但他们很可能不会有一个有效的端口来监听。 – 2012-03-13 20:09:53

回答

8

不,Heroku会在您将代码推送到Heroku时检测到应用程序类型,并编译段落。你需要让他们与两个(并不总是一件坏事)之间定义的API,作为单独的应用程序

更新:您可以“叠加” buildpacks这些天,如红宝石+ PHP所以你可以有两种执行。有关如何在同一应用程序中使用多个构建包,请参见https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app

+0

这并不总是不可能的,请在完全放弃之前查看我的答案。 – Ali 2015-11-15 11:35:19

3

作为一个告诫,你在技术上可以在一个应用程序上安装两种语言 - 但我不知道如何同时运行它们。我做了这个buildpack到和的NodeJS结合PHP(这样我就可以蛞蝓编译过程中运行咕噜声):

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

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

更新:

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

1

是的,它是主要是可能我相信,只要你没有做一些非常棘手的事情。我曾经部署过一个使用斯坦福大学CoreNLP的Flask(Python)应用程序,它全部用Java编写。您将需要heroku-buildpack-multi

添加完成后,请确保制作.buildbacks文件,并从Heroku github添加所需的所有buildpack。

这会规避Heroku检测您的应用类型本身,并使其从.buildpacks文件安装所有必需的buildpack。

+0

你不需要再使用.buildpacks了 - 它现在是平台的一部分,https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app – 2015-11-27 18:17:08

相关问题