【问题标题】:Heroku: Slug size is way bigger than local because of .apt file?Heroku:由于 .apt 文件,Slug 的大小比本地大得多?
【发布时间】:2021-04-08 22:02:10
【问题描述】:

我不久前使用 heroku 部署了我的第一个 python + flask webapp,但总是收到警告 Your slug size (365MB) exceeds our soft limit (300MB)。直到现在当我查看究竟占用了多少空间时才介意太多。运行 bash 来检查蛞蝓我得到以下信息:

1.1G    /app
649MB   /app/.heroku
364M    /app/.apt
28M     /app/Lib
12M     /app/.chromedriver
2.0M    /app/Scripts
32K     /app/.procfile.d
20K     /app/__pycache__
16K     /app/main.py
4.0K    /app/hashtable.py
4.0K    /app/Procfile
4.0K    /app/requirements.txt
4.0K    /app/.locales

这看起来不像我在本地拥有的。我想.heroku 文件夹是由heroku 添加的,但.apt 也是因为那个不在我的本地机器上。如果我用cdls 调查它,它看起来很像heroku 需要的东西,所以我有点小心删除它

我只是感到困惑,因为我从未在其他项目中看到 .apt,而且当我的所有文件都在 33MB 左右并且我不知道其他 330MB 来自哪里时,我觉得我做错了。无法想象 heroku 将 300MB 的必需文件放入 slug 以运行 Web 应用程序

有人解释一下吗? 我使用的构建包是:

heroku/python
https://github.com/heroku/heroku-buildpack-chromedriver
https://github.com/heroku/heroku-buildpack-google-chrome
https://github.com/heroku/heroku-buildpack-locale.git

编辑:

如果我输入heroku run bash,我看到的正是我在本地看到的文件,没有.apt。我上面发布的是我输入du -ha --max-depth 1 /app | sort -hr时显示的内容,这是heroku建议的命令,用于查看按文件大小排序的当前目录

由于我在本地也没有看到.apt 文件,所以我不确定如何使用.slugignore。但是在这些文件中也没有依赖项或包,所以我很确定这些是 heroku 需要的东西?

【问题讨论】:

    标签: python heroku


    【解决方案1】:

    看起来 Heroku CLI 和 APT 库已安装在您的项目文件夹中,但情况并非如此(这些命令/库也将被其他项目使用)。

    我会将它们删除并重新安装到不同的(工具文件夹?)位置。

    另一种选择是使用 .slugignore 忽略这些文件,因为运行 Flask 应用程序不需要它们,请参阅 Heroku Slug Compiler 文档。

    【讨论】:

    • 我不知道如何检查 APT 库的位置,但我机器上 heroku 的位置不在文件夹中,而是在 /program 文件和我推入存储库的文件夹中也不是 heroku CLI 或 APT 库,所以我不确定如何将它们放入 .slugignore 文件夹。如果我输入 heroku run bash 我也会看到我在本地看到的确切文件。我上面发布的是当我输入“du -ha --max-depth 1 /app | sort -hr”时显示的内容,这是heroku建议的命令
    • .slugignore 的作用类似于.gitignore,只需添加要忽略的文件和文件夹的名称
    猜你喜欢
    • 1970-01-01
    • 2015-07-23
    • 2011-11-12
    • 2014-06-19
    • 2014-04-28
    • 1970-01-01
    • 2021-09-28
    • 2020-04-12
    • 1970-01-01
    相关资源
    最近更新 更多