从 heroku slugs 中排除 gems 中的文件(使用 .slugignore、heroku)
Posted
技术标签:
【中文标题】从 heroku slugs 中排除 gems 中的文件(使用 .slugignore、heroku)【英文标题】:exclude files in gems from heroku slugs (using .slugignore, heroku) 【发布时间】:2011-12-23 09:47:16 【问题描述】:我正在使用的一个 rails 3.0.x 项目使用了一个 gem,其中包含 Heroku 部署不需要的大量测试数据。我想把它从 heroku slug 中排除,因为它给 slug 增加了几十兆(并且已经使我们多次超过 100mb 的大小限制,我们的 slug 由于其他原因很大。)
我已经尝试使用 .slugignore 机制来执行此操作,但我找不到一种方法让它排除 gems 中的文件而不是应用程序中的文件。这是一个运行在竹堆栈上的 rails 3.0.x 应用程序,但如果这些版本中有解决方法/程序,我会升级到 rails 3.1 和/或雪松堆栈。
关于解决此问题的其他建议(不是“让巨大的宝石变小”)也很棒,非常受欢迎。
【问题讨论】:
【参考方案1】:在 cedar 堆栈上,gem 安装到您的 vendor
文件夹中(实际路径类似于 vendor/bundle/ruby/1.9.1/gems/
),所以我相信您可以忽略所需的子路径,尽管我没有尝试过。
【讨论】:
那行不通。 .slugignore 似乎不是递归的。太糟糕了.. gem 中有很多不必要的东西在 slug 中不需要。【参考方案2】:在一般情况下,这将不起作用,因为在安装 gem 文件之前会删除 .slugignore 匹配的文件。请参阅以下 heroku 部署输出:
-----> Deleting 2 files matching .slugignore patterns.
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.0.pre.5
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Using rake (10.0.3)
Using Platform (0.4.0)
Using open4 (1.3.0)
...
【讨论】:
以上是关于从 heroku slugs 中排除 gems 中的文件(使用 .slugignore、heroku)的主要内容,如果未能解决你的问题,请参考以下文章
rails 4 gem 'mongoid_slug' 无法按 id 搜索
通过 Friendly_Id Gem 在 URL 中使用 Slug 和 id
我可以在资产编译后删除 Heroku 上的应用程序/资产以减少 slug 大小吗
当我当时在 Heroku 中部署 django 应用程序时,出现“Compiled Slug Size is too Large”错误