Python 在Heroku应用程序中同时运行Django和Node
我想在heroku实例上同时运行django应用程序和节点应用程序 这是我的文件:Python 在Heroku应用程序中同时运行Django和Node,python,django,node.js,heroku,Python,Django,Node.js,Heroku,我想在heroku实例上同时运行django应用程序和节点应用程序 这是我的文件: web: python manage.py runserver 0.0.0.0:$PORT web: node bin/node_modules/app.js 但是,正如我所预料的,它看起来似乎只运行节点应用程序。是否可以将Heroku配置为在同一个procfile中运行这两个进程,或者是否需要执行其他操作?(如果还有别的什么,我不希望有一个完全独立的heroku实例) 你知道,因为Heroku的端口变量完全是
web: python manage.py runserver 0.0.0.0:$PORT
web: node bin/node_modules/app.js
但是,正如我所预料的,它看起来似乎只运行节点应用程序。是否可以将Heroku配置为在同一个procfile中运行这两个进程,或者是否需要执行其他操作?(如果还有别的什么,我不希望有一个完全独立的heroku实例)
你知道,因为Heroku的端口变量完全是内部变量,我可以做一些像pass node app.js port=$port这样的事情,我不介意,但我仍然希望将它们放在同一个位置。还不能发表评论,但是你试过了吗:
web: python manage.py runserver 0.0.0.0:$PORT & node bin/node_modules/app.js
您只需要两个不同的进程名称:
webpy: python manage.py runserver 0.0.0.0:$PORT
webjs: node bin/node_modules/app.js
(假设每个流程正常运行)如我在评论中所述,如果您想要两个web流程,您需要扩展您的应用程序流程管理器以包括两个动态:
heroku ps:scale web=2
我去派对有点晚了,但Heroku刚刚发布了一篇关于如何实现这一点的博客文章 阅读它,但本质上,您将使用它来设置子procfile,如下所示: 程序文件:
web: bin/runsvdir-dyno
Procfile.web:
django: gunicorn path.to.wsgi:application --bind 127.0.0.1:$DJANGO_PORT
node: node server.js
这不起作用,因为您正在重写“web”procfile类型的值。如果你想分别运行它们(在不同的dyno上),你可以给它们命名(例如:
python
和node
),然后运行heroku-scale-python=1-node=1
。这让我接近了,但实际上我只是添加到web:references-ad-heroku-ps:scale-web=2来添加另一个web dyno。