2017-06-22 65 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一样,我们可以将所有应用程序使用的常见宝石放入其中。 –