同时在Heroku应用程序中运行Django和Node

时间:2014-03-21 17:39:27

标签: python django node.js heroku

我想在我的heroku实例上同时运行django应用程序和节点应用程序。

这是我的procfile:

web: python manage.py runserver 0.0.0.0:$PORT
web: node bin/node_modules/app.js

然而,正如我所料,它看起来好像只运行节点应用程序。是否可以将Heroku配置为在同一个procfile中运行这两个进程,还是需要执行其他操作? (如果还有别的什么?我宁愿没有一个完全独立的heroku实例。)

你知道,因为Heroku的端口变量完全是内部的,我可以做一些类似传递节点app.js port = $ PORT的东西,我不介意,但是我仍然希望将两者都放在同一个点。

4 个答案:

答案 0 :(得分:3)

我参加派对有点晚了,但是Heroku刚刚发布了一篇关于如何实现这一目标的博客文章。

阅读它here,但实质上,您将使用此custom buildpack来设置子进程文件,如下所示:

Procfile:

web: bin/runsvdir-dyno

Procfile.web:

django: gunicorn path.to.wsgi:application --bind 127.0.0.1:$DJANGO_PORT
node: node server.js

答案 1 :(得分:1)

您只需要两个不同的进程名称:

webpy: python manage.py runserver 0.0.0.0:$PORT
webjs: node bin/node_modules/app.js

(假设每个过程都正常工作)

答案 2 :(得分:0)

暂时无法发表评论,但您尝试过:

web: python manage.py runserver 0.0.0.0:$PORT & node bin/node_modules/app.js

答案 3 :(得分:0)

正如我在评论中所述,如果您需要两个网络流程,则需要扩展您的应用流程管理器以包含两个dynos:

heroku ps:scale web=2