2017-06-22 66 views
1

我想部署偵察應用程序提供的APM解決方案。 Scout apm文檔說我需要在服務器上運行的所有應用程序中安裝一個gem。我有多個應用程序在單個服務器上運行。我所有的紅寶石應用程序都位於/var/www。有沒有一種方法可以將apm gem部署在一個地方,然後它可以用於所有的服務。這樣我就不需要將它添加到每個應用程序Gemfile及其配置文件config文件夾中。我知道我可以使用shell腳本來實現它,但是這種方法的問題是所有的應用程序都有自己的git repo,這對我來說是管理開銷。所有應用程序的紅寶石公共部署

+0

爲什麼添加依賴到每個'Gemfile'有問題?聽起來像是一個非常簡單的解決方案。 –

+0

我有90多個這樣的應用程序,我必須做這個練習。這不是管理開銷嗎? –

+0

您的應用程序是否已經擁有「共享邏輯」寶石?您可能會將此添加爲該寶石的運行時依賴項。否則...你可以只寫一個shell腳本來一次更新所有90+ Gemfiles。 –

回答

2

不,您必須在應用程序中將想要使用的寶石添加到Gemfile。因爲如果您沒有將該寶石添加到應用程序的Gemfile那麼應用程序將無法加載該寶石。

另一種選擇可能是在全局安裝gem離子服務器和require手動爲每個應用程序創建gem。但是這仍然意味着您必須爲所有應用程序添加一個require 'gem_name',並且這很容易出錯,因爲您失去了bundler提供的魔法。

tl; dr:不,您必須將寶石添加到每個應用程序的Gemfile

+0

有沒有其他方法可以做到這一點?或者只有通過向所有應用程序添加gem才能這樣。像常見Gemfile一樣,我們可以將所有應用程序使用的常見寶石放入其中。 –