首页 > 解决方案 > Heroku:由于 .apt 文件,Slug 的大小比本地大得多?

问题描述

不久前,我使用 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 需要的东西?

标签: pythonheroku

解决方案


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

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

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


推荐阅读