将 Flask 应用程序和 Node.js 应用程序部署到 heroku one git 存储库
Deploying both Flask app and Node.js app to heroku one git repo
我有一个存储库,我想从中部署两个应用程序。我在 Heroku 中将其设置为两个不同的应用程序。
我正在使用 Procfile 加载 Flask 应用程序并且它可以正确部署,但是当部署 Node 应用程序时,它也会尝试使用 Procfile 而不是使用我已加载的 Node buildpack。
除了分离存储库之外,还有其他方法可以解决这个问题吗?
提前谢谢你。
您可以在 Procfile 中定义多个工人。
https://devcenter.heroku.com/articles/procfile#more-process-type-examples
web: python main.py
app: npm start
但是请记住,一个应用程序只能有一个活跃的网络工作者。 Flask 应用程序可能会使用一个端口。您的节点应用程序也可能会。在我的示例中,app
工作人员无法打开端口! 如果是这种情况,您需要在 2 个单独的 Heroku 应用程序上托管您的存储库(在这种情况下将 app
更改为 web
)
为了混合使用 Python (Flask) 和 Node,您需要安装多个构建包。您可以让 Heroku 使用 requirements.txt
、runtime.txt
和 package.json
自动检测它们,但它不可靠。
这就是为什么您应该在 app.json
https://devcenter.heroku.com/articles/app-json-schema#buildpacks
中定义您使用的构建包
{
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-nodejs"
},
{
"url": "https://github.com/heroku/heroku-buildpack-python"
}
]
}
我有一个存储库,我想从中部署两个应用程序。我在 Heroku 中将其设置为两个不同的应用程序。
我正在使用 Procfile 加载 Flask 应用程序并且它可以正确部署,但是当部署 Node 应用程序时,它也会尝试使用 Procfile 而不是使用我已加载的 Node buildpack。
除了分离存储库之外,还有其他方法可以解决这个问题吗?
提前谢谢你。
您可以在 Procfile 中定义多个工人。
https://devcenter.heroku.com/articles/procfile#more-process-type-examples
web: python main.py
app: npm start
但是请记住,一个应用程序只能有一个活跃的网络工作者。 Flask 应用程序可能会使用一个端口。您的节点应用程序也可能会。在我的示例中,app
工作人员无法打开端口! 如果是这种情况,您需要在 2 个单独的 Heroku 应用程序上托管您的存储库(在这种情况下将 app
更改为 web
)
为了混合使用 Python (Flask) 和 Node,您需要安装多个构建包。您可以让 Heroku 使用 requirements.txt
、runtime.txt
和 package.json
自动检测它们,但它不可靠。
这就是为什么您应该在 app.json
https://devcenter.heroku.com/articles/app-json-schema#buildpacks
{
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-nodejs"
},
{
"url": "https://github.com/heroku/heroku-buildpack-python"
}
]
}