【问题标题】:Cleaning up the bundler cache when deploying to heroku部署到 heroku 时清理捆绑器缓存
【发布时间】:2013-01-26 16:57:51
【问题描述】:

每当我部署到 Heroku(使用 heroku_san gem 的 Ruby on Rails 应用程序)时,它都会显示以下内容:

Cleaning up the bundler cache.
Would have removed sitemap_generator (2.0.1.pre1)
Would have removed newrelic_rpm (3.5.5.38)
Would have removed httparty (0.10.0)
Would have removed thor (0.16.0)
Would have removed ckeditor (3.7.1)
Would have removed fog (1.8.0)
Would have removed rake (0.9.2.2)
Would have removed dalli (2.6.0)

(或我以前部署中可能拥有的任何其他旧 gem) 如何清理 Heroku 应用程序中的捆绑程序缓存? 我试着跑了:

heroku run bundle clean --force

但它没有帮助。

谁能告诉我如何清理 Heroku 中的捆绑器缓存? 或者我是否应该忽略此消息?

【问题讨论】:

  • config/heroku.yml 中的 heroku_san 配置是什么样的?
  • 看起来像这样:app: 'my app name' stack: cedar config: BUNDLE_WITHOUT: "development:test" S3_BUCKET: "my bucket name" S3_KEY: "my s3 key" S3_SECRET: "我的 s3 秘密”

标签: ruby-on-rails heroku bundler heroku-san


【解决方案1】:

这是由于最近在 Bundler 中引入的更改。我们(Heroku)需要追踪为什么它认为它在--dry-run 模式下运行并修复它。

与此同时,这无害且不会引起任何问题。不幸的是,如果您担心的话,没有办法手动清除缓存。

【讨论】:

  • 我想我知道原因了:stackoverflow.com/questions/14539894/…
  • @Roman 我们现在有预感 - 我们认为这是 bundler 中的一个错误,因为运行 bundle exec rake assets:precompile --dry-run 被应用于捆绑配置文件。 bundle clean 在此之前运行,但 --dry-run 配置在构建之间仍然存在。
  • 这个问题现已通过使用 Bundler 1.3.2 得到修复。
【解决方案2】:

我在我曾经部署的每个 Heroku 应用程序上也都得到了这个,并且还没有遇到问题。

这就是我认为您不必担心的原因:

  • 在他们的服务器上存储大量 gem 不会降低您的应用程序的速度。哎呀,即使您将一堆不需要的 gem 放入 Gemfile,明显的性能损失也可能是应用程序的初始启动时间和随后的内存使用。如果这些 gem 不在您的 Gemfile 中,那么对您的应用的性能影响应该为零。
  • 虽然 Heroku 对免费帐户的 slug 有 100MB 的软限制,但我自己的轶事证据表明,这不包括您从 Gemfile 中删除的 gem(如果下面的猜测是正确的,这是有道理的)。

下面是关于 Heroku 为何不清理捆绑程序缓存的疯狂猜测:

内存比硬盘空间更昂贵,因此虽然大多数 gem 可能会在硬盘上占用微不足道的空间,但如果必须将大量 gem 加载到内存中,它们就会累加起来。但是,如果 gem 不在您的 Gemfile 中,它就不会在内存中。删除(并且可能稍后重新下载)gem 很可能比将其存储在驱动器上更昂贵,以防万一您以后改变主意并想要将其重新添加到 Gemfile 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2012-03-07
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    相关资源
    最近更新 更多