2016-08-03 48 views
1

我使用連接到GitHub的Heroku管道。如何更新正在運行的heroku應用程序的app.json清單?

我有三個不同的環境: - Reviews(這裏我所有的拉請求都自動部署到一旦我的CI測試成功) - Staging(我的主分支部署) - Production(我的生產環境)

我的Review應用程序創建並銷燬,因爲我拉和合並分支。我的StagingProduction應用程序總是相同的。當我的主分支更新時,Staging得到更新,然後我可以手動決定將該代碼升級到Production

這太棒了!除了我面臨我的app.json文件的問題。

在開發新分支時,我經常使用新的heroku插件,例如Redis db或新的監視工具。我通過更新我的app.json文件來完成此操作。例如:

"addons": [ 
    "logentries:le_tryit", 
    "newrelic:wayne", 
    { 
    "plan": "mongolab:sandbox", 
    "as": "MONGODB_URI" 
    }, 
    { 
    "plan": "heroku-redis:hobby-dev", 
    "as": "REDIS_SESSIONS_URI" 
    } 
] 

一旦創建一個拉請求,應用程序在Reviews創建,我可以看到我的新插件。不幸的是,當我合併我的主分支,app.json似乎並沒有對我的Staging環境再次運行(並隨後在我的Production環境。

有沒有辦法重新運行在現有的Heroku應用程序的清單app.json ?而他們能夠在每個新部署實現自動化?

如果不是,是否有原因嗎?

謝謝!

回答

1

有沒有辦法做到你的要求。該app.json只在創建新的Heroku時進行解析應用程序,而不是重新部署一個。原因是它可能會對生產應用程序造成不必要的副作用。

EG:如果從app.json文件中刪除一行並將其推送到現有的Heroku應用程序,會發生什麼情況?如果Heroku刪除你的插件(可能會破壞大量的數據?)

相反,你應該做的是這樣的:當你削減生產版本,如果你需要使用新的插件或改變它們,手動通過CLI 。

例如:

$ heroku addons:create heroku-redis 
+0

感謝這個輸入@rdegges。我想了一下,並同意你的看法,從app.json更新現有的應用程序很可能是不好的做法。只是意味着如果您添加新插件,則需要手動將它們(CLI/Dashboard)添加到現有應用程序(如果您使用的是管線或類似軟件)。 – unknown

相關問題