python - 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
也是因为该文件夹不在我的本地计算机上。如果我用它来研究它,cd
它ls
看起来很像 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 需要的东西?
解决方案
看起来 Heroku CLI 和 APT 库已安装在您的项目文件夹中,但情况并非如此(这些命令/库也将被其他项目使用)。
我会将它们删除并重新安装在不同的(工具文件夹?)位置。
另一种选择是使用 忽略这些文件.slugignore
,因为运行 Flask 应用程序不需要它们,请参阅 Heroku Slug 编译器文档。
推荐阅读
- python - 检查csv文件是否存在并满足条件?
- three.js - Raycaster 无法检测到立方体
- mysql - WooCommerce:使用 SQL 查询删除订单范围
- javascript - 您可以在 React JS 应用程序的新选项卡中显示 PDF 文件吗
- css - CSS背景图像未显示,尽管正确的路径和命名是正确的
- php - 从实时统计数据创建视图
- c++ - 不使用`sizeof(*type)`计算整数/任何数据类型的大小?
- node.js - 使用 AWS Lambda 函数从 Twilio 多部分/表单数据响应解析传真数据时损坏的 PDF
- variables - 汇编中的数据指令大小
- python - PythonKit 崩溃 Swift 项目