【问题标题】:On heroku, how to delete files installed by a buildpack that are no longer needed?在heroku上,如何删除不再需要的buildpack安装的文件?
【发布时间】:2013-08-15 20:51:33
【问题描述】:

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

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

我的应用程序太小而不会导致此问题,已通过手动检查包和资产大小进行验证。在对一次性 dyno 进行调查后,我发现 R buildpack 安装的文件仍在 vendor/ 中,即使我几个月前停止使用 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   .  

一次性删除它们是不行的;他们重新出现在一个新的。

我怎样才能使这些目录,如R/gcc-4.3/ 永久消失?

【问题讨论】:

    标签: ruby-on-rails heroku buildpack


    【解决方案1】:

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

    【讨论】:

    • purge_cache 函数没有做到这一点,但 rebuild 做到了。谢谢。
    • 为我工作的 purge_cache 从 350MB 增加到 68MB 非常感谢!
    【解决方案2】:

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

    更新0 来自 R buildpack github 页面上的 README.md:

    注意事项

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

    你的另外 310MB 来自哪里?

    【讨论】:

    • 这些目录不是我项目的一部分。它们由 buildpack 构建和安装(参见上面的链接)。
    • 我注意到了。 R/ 和其他库构建依赖项的内容总和大约是 150M,这仍然不足以占全部 300M。清除缓存然后重建将这些目录留在 vendor/ 中:assets、bundle、heroku、plugins 和 ruby​​-2.0.0。我认为多余的部分在旧的 1.9.3 目录中。如果升级到 2.0.0,显然会保留缓存的 1.9.3 文件。
    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 2019-02-06
    • 2016-06-20
    • 1970-01-01
    • 2023-01-29
    • 2013-03-03
    • 2014-02-20
    • 1970-01-01
    相关资源
    最近更新 更多