cou*_*mas 6 heroku deploying bundler asset-pipeline gemfile
我们有一个相当大的应用程序正在使用heroku ...它是一个使用browsercms作为基础的应用程序,它建立在它之上.Gemfile并不是那么大(我们没有比普通应用程序更多的宝石),但出于某种原因,部署需要15分钟.由于所有资产,将资产编译并推送到s3(通过assetsync)大约需要5分钟,但剩余的10分钟用于此期间:
----> Heroku receiving push
-----> Removing .DS_Store files
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-1.9.3
-----> Installing dependencies using Bundler version 1.2.0
Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
Run Code Online (Sandbox Code Playgroud)
任何人都有任何线索为什么这部分需要这么长时间?gemfile锁在repo中,并推送到heroku,这里是我们的gemfile的主旨:https://gist.github.com/aa44bbb06eed97736c20
编辑:我们在轨道3.2.7
当捆绑器使用具有 git 存储库的 gem 时,它将下载整个 git 存储库以包含该 gem,而不仅仅是 master 分支或任何作为主分支的分支。
rails_admin我们对sferik 的 gem 也有同样的问题。
如果您像这样指定特定分支可能会有所帮助:
gem "browsercms", "3.5.3", git: 'git://github.com/josiahivey/browsercms.git', :branch => 'master'
Run Code Online (Sandbox Code Playgroud)
判断的一种方法是查看更改之前和之后编译的 slug 大小。在我们的例子中,rails_admin它负责大约 30mb 的 slug 大小。Heroku 也有 100mb 的 slug 大小限制,仅供参考。
您也可以尝试运行捆绑包命令,如下所示:
bundle pack --all
Run Code Online (Sandbox Code Playgroud)
这会将你的所有 gem(由于 --all 开关的缘故,应该也是 git 的)放入你的供应商/缓存目录中。
正如捆绑器项目的 github 问题中所示(看最后,一个 Heroku 人的回应):
https://github.com/carlhuda/bundler/issues/67
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |