2017-03-29 46 views
0

我有一個web應用程序,我設置從github連續部署。不過,我打算在這個應用程序中添加一些工作角色,我想知道幾件事情。我正在使用Node.js.從github部署webapp和工作人員到Heroku

在我的腦海裏,我有設計,如:

  • Procfile會對網絡和工人DYNOS的#。
  • 工人類型可以是不同的部署,但我可以看到的是它有不同的啓動命令。這與包管理有什麼關係?如果我在工作者角色中需要的東西與網絡應用中的東西不同,會怎麼樣?

所以我的問題是?

  • 任何機會,我可以使用相同的存儲庫和結構的工人和網絡代碼保持在同一位置的方式嗎?我可以在根目錄中有/web/worker文件夾,它們有不同的app.jspackage.json文件,因此我將它們放在同一個存儲庫中,但它們的依賴關係的管理方式不同。如何在部署到Heroku時完成這項工作?
  • 我有一些第三方庫,我已經通過構建包安裝到了網絡應用程序,但我希望它們出現在工作者角色中。這些對於我想要做的一些計算是必需的,所以我打算使用工作角色來進行出列和處理。任何方式來安裝工人角色上的生成包?
  • 什麼是通過Procfile管理這種方式的正確方法?我可以在proc文件中設置我想要的工作角色數量,還是需要使用命令行向上/向下縮放,這是我擁有的唯一選項?

回答

1

看起來這是完全可能的。所有你需要做的是有一個全局的package.json文件來管理你的依賴關係(你不能用worker和web role來管理單獨的依賴關係)。如果package.json不足以讓heroku檢測到您正在使用Node.Js這是我遇到的問題;添加heroku/nodejs的buildpack,你應該沒問題。無論安裝什麼buildpack,它都可以在worker角色上使用。

對於不同的目錄,這是我現在有:

/web 
/worker 
/package.json 
/Procfile 

而且我procfile是:

web: npm start --prefix /web 
worker: npm start --prefix /worker 

這似乎解決啓動問題。在Procfile中沒有任何設置#of dynos的方法。