从 github 将 webapp 和 worker 部署到 Heroku
Deploying webapp and worker to Heroku from github
我有一个 Web 应用程序,我从 github 设置了持续部署。但是,我打算向该应用程序添加一些工作者角色,并且我想知道一些事情。我正在使用 Node.js.
在我看来,我的设计是这样的:
- Procfile 将具有网络和工作程序测功机的数量。
- Worker 类型可以是不同的部署,但我只能看到它有不同的启动命令。这如何与包管理一起工作?如果我在工作者角色中需要的东西与网络应用程序中的东西不同怎么办?
所以我的问题是?
- 我是否有机会使用相同的存储库并以工作人员和 Web 代码维护在同一位置的方式构建它?我可以在根目录中有
/web
和 /worker
文件夹,它们有不同的 app.js
和 package.json
文件,所以我把它们放在同一个仓库中,但它们的依赖关系管理不同。部署到 Heroku 时如何使这项工作正常进行?
- 我有一些第 3 方库,我已通过构建包安装到 Web 应用程序,但我希望它们出现在工作者角色中。这些对于我想做的一些计算是必需的,所以我计划使用工作者角色进行出列和处理。有什么方法可以在工作者角色上安装构建包?
- 通过 Procfile 进行管理的正确方法是什么?我可以在 proc 文件中设置我想要的工作者角色的数量,还是我需要使用命令行来扩大/缩小规模,这是我唯一的选择?
看起来这是完全可能的。您需要做的就是拥有一个全局 package.json
文件来管理您的依赖项(您不能使用 worker 和 web 角色管理单独的依赖项)。如果 package.json
不足以让 heroku 检测到您正在使用 Node.Js
,这是我遇到的问题;添加 heroku/nodejs
的构建包,你应该没问题。无论安装什么 buildpack,它都将在 worker 角色上可用。
关于不同的目录,我现在是这样的:
/web
/worker
/package.json
/Procfile
我的 procfile 是:
web: npm start --prefix /web
worker: npm start --prefix /worker
这似乎解决了启动问题。没有任何方法可以在 Procfile 中设置 #of dynos。
我有一个 Web 应用程序,我从 github 设置了持续部署。但是,我打算向该应用程序添加一些工作者角色,并且我想知道一些事情。我正在使用 Node.js.
在我看来,我的设计是这样的:
- Procfile 将具有网络和工作程序测功机的数量。
- Worker 类型可以是不同的部署,但我只能看到它有不同的启动命令。这如何与包管理一起工作?如果我在工作者角色中需要的东西与网络应用程序中的东西不同怎么办?
所以我的问题是?
- 我是否有机会使用相同的存储库并以工作人员和 Web 代码维护在同一位置的方式构建它?我可以在根目录中有
/web
和/worker
文件夹,它们有不同的app.js
和package.json
文件,所以我把它们放在同一个仓库中,但它们的依赖关系管理不同。部署到 Heroku 时如何使这项工作正常进行? - 我有一些第 3 方库,我已通过构建包安装到 Web 应用程序,但我希望它们出现在工作者角色中。这些对于我想做的一些计算是必需的,所以我计划使用工作者角色进行出列和处理。有什么方法可以在工作者角色上安装构建包?
- 通过 Procfile 进行管理的正确方法是什么?我可以在 proc 文件中设置我想要的工作者角色的数量,还是我需要使用命令行来扩大/缩小规模,这是我唯一的选择?
看起来这是完全可能的。您需要做的就是拥有一个全局 package.json
文件来管理您的依赖项(您不能使用 worker 和 web 角色管理单独的依赖项)。如果 package.json
不足以让 heroku 检测到您正在使用 Node.Js
,这是我遇到的问题;添加 heroku/nodejs
的构建包,你应该没问题。无论安装什么 buildpack,它都将在 worker 角色上可用。
关于不同的目录,我现在是这样的:
/web
/worker
/package.json
/Procfile
我的 procfile 是:
web: npm start --prefix /web
worker: npm start --prefix /worker
这似乎解决了启动问题。没有任何方法可以在 Procfile 中设置 #of dynos。