【问题标题】:Would have removed .. in heroku deploy log会在heroku部署日志中删除..
【发布时间】:2013-01-10 11:37:47
【问题描述】:

前几天我开始看

 Would have removed best_in_place (2.0.2)
 Would have removed thor (0.16.0)

在我的 heroku 部署输出中。

它曾经说它移除了宝石。

有人知道这是怎么回事吗?

更新

heroku 更新到最新的 ruby​​ 1.9.3 并且捆绑器缓存清理得很好。

【问题讨论】:

标签: logging deployment heroku


【解决方案1】:

这是 Heroku 部署配置中的一个错误。 它写入一个文件 .bundle/config ,其中有一行:

BUNDLE_DRY_RUN: false

当 bundler 加载这个全局配置文件时,它会将其转换为 :dry_run => "false" 当它检查这个设置时,它会检查 settings[:dry_run],它是一个字符串,计算结果为 true。

你可以通过一些shell命令(heroku run bash)删除这一行:

mv -f .bundle/config .bundle/config.orig
sed '/BUNDLE_DRY_RUN/d' < .bundle/config.orig > .bundle/config

然后运行

bundle clean

【讨论】:

【解决方案2】:

这是 bundler gem 中的一个错误——本质上是额外的调试信息被转储到屏幕上。它应该在下一个版本中进行修补。删除将来自缓存,很可能是因为有更新的版本可用(最新的best_in_place 是 2.0.3,Thor 0.17.0)。这些可以安全地忽略。

【讨论】:

  • 这是 bundler@github 上的未解决问题吗?
  • 相信它是打包团队内部发现的,已经打了补丁,等待发布
【解决方案3】:

经过一番研究,这似乎不是错误,而是一项功能!

你可以在这里看到https://github.com/carlhuda/bundler/pull/2237

一个dry_run 标志已经被实现,就像宝石已经被移除一样,而不是移除它们,它只是打印出来

实际代码是here

 if Bundler.settings[:dry_run]
          Bundler.ui.info "Would have removed #{output}"
        else
          Bundler.ui.info "Removing #{output}"
          FileUtils.rm_rf(gem_dir)
        end

如您所见,如果 dry_run 打印就是这样。否则它会删除宝石

所以这是一项功能而不是错误,因此不会很快得到修复。这给heroku(我正在等待答复)留下一个问题,即他们为什么使用dry_run ..

注意那些不知道的人 - 这会膨胀 slug 大小

【讨论】:

    【解决方案4】:

    @Roman 的解释是正确的。

    如果你有一个自定义的 buildpack(或者你可以很容易地 fork 并使用它),它可以在一行中修复

    https://github.com/heroku/heroku-buildpack-ruby/blob/master/lib/language_pack/ruby.rb

    第 408-409 行来自

    puts "Cleaning up the bundler cache."
    pipe "bundle clean"
    

    puts "Cleaning up the bundler cache."
    pipe "bundle config --delete dry_run"
    pipe "bundle clean"
    

    bundle config --delete 删除配置(注意下划线),默认dry-run为false。

    【讨论】:

    • 酷,我称之为团队合作和交叉学习 :) 我现在要使用自定义构建包。
    【解决方案5】:

    这个问题现已在 Bundler 1.3.2 的发布中得到修复,该版本现已在最新的官方 Ruby buildpack 中的 Heroku 上使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多