我开始使用我的Heroku应用程序撞墙。
我非常清楚slu size尺寸,图片,PDF和其他材料的正常问题,但我的问题可能围绕着由凉亭或可能构建包装带来的其他资产。
https://devcenter.heroku.com/articles/slug-compiler Heroku Slug Size After Multiple Deployments
My Heroku compliled slug看起来像这样:
$ du -h --max-depth=1
4.0K ./.bower-tmp
30M ./tmp
24K ./features
236K ./config
195M ./public
4.0K ./log
34M ./bin
792K ./db
355M ./vendor
8.0K ./.heroku
22M ./app
64K ./lib
8.0K ./.bundle
136K ./.bower-registry
22M ./.bower-cache
24M ./node_modules
12K ./.profile.d
到目前为止,最大的是供应商(355M),但我的本地供应商文件夹实际上是空的(195M)。
但是在heroku上它看起来像:
40M vendor/ruby-2.0.0
21M vendor/node
32K vendor/heroku
12K vendor/assets
103M vendor/jvm
192M vendor/bundle
195M public/assets (bower bloat?)
我猜测的是用于凉亭和PDF生成的几个构建包之一。
https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby
https://github.com/razorfly/wkhtmltopdf-buildpack
我的应用程序本身看起来很瘦22M,但我现在的heroku SLUG是298.4MB!如果我不使用这些构建包,而是在构建之间迁移到本地计算机上的资产编译,那么单独的供应商目录不仅仅是du
。我不确定一个好的部署策略(/ slug饮食)应该是什么样的,任何想法都会受到高度赞赏。
更新:
我也试过从我读过的其他人那里重建slu ,,但没有效果。编译后的弹头尺寸保持不变。
heroku plugins:install https://github.com/heroku/heroku-repo.git
heroku repo:rebuild -a appname
构建GIST:https://gist.github.com/holden/b4721fc798bdaddf52c6
更新2(遵循drorb提出的优秀想法之后)
12K ./.profile.d
21M ./app
4.0K ./log
812K ./db
8.0K ./.heroku
236K ./config
195M ./public
19M ./.bower-cache
60K ./lib
253M ./vendor
4.0K ./.bower-tmp
128K ./.bower-registry
34M ./bin
30M ./tmp
24M ./node_modules
24K ./features
8.0K ./.bundle
供应商
12K vendor/assets
193M vendor/bundle
21M vendor/node
32K vendor/heroku
40M vendor/ruby-2.0.0
公共/资产(很长)
答案 0 :(得分:4)
vendor/jvm
的大小为103M。既然你没有使用JRuby,我找到它的唯一原因就是使用yui-compressor gem。看看heroku-buildpack-ruby似乎在这种情况下安装了JVM:
def post_bundler
if bundler.has_gem?('yui-compressor') && !ruby_version.jruby?
install_jvm(true)
ENV["PATH"] += ":bin"
end
end
如果你可以避免使用yui-compressor,你应该能够在你的slug尺寸上节省103M。
答案 1 :(得分:2)
FWIW,我们从应用程序中删除了Bower,并将其替换为Rails Assets框架。我们得出结论,在Rails应用程序中使用Bower有点没有意义,因为Bundler基本上提供相同的功能。
答案 2 :(得分:1)
部分问题可能是指向Gemfile中的Git repos。有一次,我需要指出一个尚未发布的Rails提交,并添加了>指向发布版本时,我的slug大小为100 MB。