在heroku上,如何删除不再需要的buildpack安装的文件?

时间:2013-08-15 20:51:33

标签: ruby-on-rails heroku buildpack

我突然开始在部署时遇到slug size错误:

-----> Compiled slug size: 350.4MB is too large (max is 300MB).

我的应用程序太小而无法导致此问题,通过手动检查捆绑和资产大小进行验证。在一次性dyno调查后,我发现R buildpack安装的文件仍在供应商中,即使我几个月前停止使用buildpack并取消设置BUILDPACK_URL

~/vendor $ du -h --max-depth 1
90M ./ruby-2.0.0
28K ./plugins
24K ./heroku
122M    ./bundle
113M    ./glibc-2.7
16M ./bin
95M ./gcc-4.3
36M ./ruby-1.9.3
104K    ./assets
87M ./R
1.2M    ./gems
450M    ./libexec
108K    ./redis-rb
1008M   .  

在一次性dyno中删除它们不会这样做;它们重新出现在一个新的。

如何使这些目录(例如R/gcc-4.3/永久消失?

2 个答案:

答案 0 :(得分:2)

R buildpack可能会将这些文件放入构建的缓存目录中,然后Ruby buildpack仍然将这些文件拉进去。这两个buildpack不太可能发生冲突,但是可能。我建议尝试将您的代码推送到一个全新的应用程序,看看你的slug大小是否下降。如果是这样,您可以使用第三方/不受支持的heroku-repo plugin清除原始应用上的构建缓存。

答案 1 :(得分:0)

从源代码中删除目录。实际上,您应该能够从源代码中删除/ vendor下的大多数内容,并依赖于Heroku包。

<强> UPDATE0 来自R buildpack github页面上的README.md:

  

注意事项

     

由于R运行时的大小,Heroku上的slug大小,没有任何额外的包或程序代码,大约是45Mb。

您的其他310MB来自哪里?