【问题标题】:Reducing slug size of Rails App for Heroku减少 Heroku 的 Rails 应用程序的 slug 大小
【发布时间】:2021-08-31 14:07:40
【问题描述】:

我有一个在 Heroku 上运行的 Rails 应用程序,每次部署时都会收到警告:

Warning: Your slug size (368 MB) exceeds our soft limit (300 MB) which may affect boot time.

我想要低于 300 MB。所以我跑了du -sh .[^.]* * | sort -hr,它返回了:

2,1G    .git
176M    node_modules
 79M    vendor
 25M    tmp
5,4M    app
5,1M    public
1,2M    db
420K    test
168K    config
132K    log
116K    package-lock.json
 32K    bin
 12K    lib
 12K    Gemfile.lock
8,0K    dump.rdb
8,0K    .DS_Store
4,0K    package.json
4,0K    config.ru
4,0K    Rakefile
4,0K    README.md
4,0K    Procfile
4,0K    Gemfile
4,0K    .gitignore
  0B    storage

tmp/* 和 log/* 在我的 .gitignore 中并从 git 中删除。

其他的,如果我总结它们不等于 368 MB。那些 MB 是从哪里来的?

我知道有一些方法可以减少 node_modules 等,但首先我想解决上面的问题。

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    可能在您添加 .slugignore 文件之前,您已将一些大文件添加到 git 存储库中,现在它们位于 slug 缓存中或作为 git refs。

    您可以使用 heroku-repo 插件删除缓存

    使用命令安装插件

    heroku plugins:install heroku-repo
    

    gc

    heroku repo:gc -a appname
    

    这将对应用程序存储库运行git gc --aggressive。这是在应用程序的运行进程中完成的。

    清除缓存

    heroku repo:purge_cache -a appname
    

    这将删除存储在存储库中的构建缓存的内容。这是在应用程序的运行进程中完成的。

    完成这些步骤后,您可以将代码推送到 Heroku。

    如果它不起作用,那么您的 requirements 文件可能很大,以至于超过了 slug 大小限制。

    【讨论】:

      【解决方案2】:

      似乎 Heroku 可能已更新清除构建缓存 - 来自他们的文档 https://help.heroku.com/18PI5RSY/how-do-i-clear-the-build-cache

      清除构建缓存 您可以使用 Heroku Builds 插件清除应用的构建缓存:

      首先安装插件:

      heroku 插件:安装 heroku-builds 然后使用以下命令清除缓存:

      heroku builds:cache:purge -a example-app 缓存将在下一次部署时重建。如果您没有任何新代码要部署,您可以推送一个空提交。

      $ git commit --allow-empty -m "清除缓存" $ git push heroku 大师 其中 appname 替换为您要为其清除缓存的应用的名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-24
        • 1970-01-01
        • 2021-01-20
        • 2012-01-23
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2013-01-13
        相关资源
        最近更新 更多