我想在我的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的东西,我不介意,但是我仍然希望将两者都放在同一个点。
答案 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