Git Heroku和gems仅适用于生产环境

Git Heroku和gems仅适用于生产环境,git,heroku,production-environment,gemfile,Git,Heroku,Production Environment,Gemfile,我有一个应用程序必须在三个不同的环境中运行,分别称为dev、beta和prod 我在heroku上创建了三个不同的应用程序,因此所有的环境都可以同时运行,并且我在需要时将代码从正确的git repo部署到正确的应用程序。我认为这是完全正常的情况:-) 我在git上有一个用于开发目的的分支,当我需要时,我分支一个beta版本以部署在beta上,当它准备好时,我部署在prod上并合并回主干,如下所示 我想将NewRelic监控系统作为Heroku附加组件添加到应用程序之一,即生产应用程序中。 要安装

我有一个应用程序必须在三个不同的环境中运行,分别称为dev、beta和prod

我在heroku上创建了三个不同的应用程序,因此所有的环境都可以同时运行,并且我在需要时将代码从正确的git repo部署到正确的应用程序。我认为这是完全正常的情况:-)

我在git上有一个用于开发目的的分支,当我需要时,我分支一个beta版本以部署在beta上,当它准备好时,我部署在prod上并合并回主干,如下所示

我想将NewRelic监控系统作为Heroku附加组件添加到应用程序之一,即生产应用程序中。 要安装New Relic,您必须在Gemfile中包含一个gem,因此我只需要在生产Gemfile中包含gem

鉴于Heroku上的当前堆栈不支持Gemfile中的组,我如何实现这一目标?在投入生产之前,我是否必须手动管理每个gem文件

编辑

为了更好地证明我的尝试,也许我遗漏了一些明显的东西:

我补充说

group :production do
   gem 'newrelic_rpm'
end
归档。 我的开发环境将RACK_ENV和RAILS_ENV设置为development,当我推到heroku时,应用程序将与newrelic gem一起部署

假设Heroku上的当前堆栈不支持 档案

我认为这不是一个准确的说法

group :production do
  gem 'some_production_gem'
end
将只在
生产环境中安装
一些生产gem
。为单独的应用程序使用
RACK_ENV
RAILS_ENV
ENV vars来管理它。如果在Heroku环境变量中指定了
RAILS\u ENV:staging
,我相信
group:staging
也会起到同样的作用

  • (特别是管理暂存和生产配置
    • 来自

      如果要在cedar上使用不带
BUNDLE\u,则需要启用
user env compile
功能标志。启用功能标志后,您可以使用
BUNDLE\u而不使用
config var:

$ heroku config:set BUNDLE_WITHOUT="development:test"

要启用该功能,请执行以下操作:

$ heroku labs:enable user-env-compile -a myapp
Heroku安全部门的说明:


不鼓励使用
user env compile
功能,因为它会将配置变量以明文形式写入slug。

感谢您的回复,但正如我在“请注意-目前,Cedar堆栈不支持BUNDLE_WITHOUT”中所发现的那样。因此,如果我用group语句指定gem,这一点都不重要,heroku也会在我的开发或登台或任何环境中带来gem。我尝试使用New Relic,开发环境中的应用程序立即被仔细监视:-)。但也许我错过了什么。。。