将 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.txtruntime.txtpackage.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"
    }
  ]
}