问题描述
Heroku 一直拒绝我的构建说:
Compiled slug size: 820.1M is too large (max is 500M).
但是,当我检查 slugsizing 时,我得到的是:
$ du -sh *
1.0K procfile
8.0K __pycache__
20K data_prep
4.0K handler.py
44M model
20K parameters
4.0K requirements.txt
1.0K runtime.txt
这些文件的总和不是 820.1M。我什至创建了一个新的 python 3.7 conda env 并使用 pip 只安装了 4 个包:Numpy、Pandas、Flask 和 Geopy。即便如此,结果也不会改变。
这是我的所有要求:
backcall==0.2.0
certifi==2020.12.5
click==7.1.2
cmdstanpy==0.9.5
colorama==0.4.4
convertdate==2.3.0
decorator==5.0.6
ephem==3.7.7.1
Flask==1.1.2
geographiclib==1.50
geopy==2.1.0
hijri-converter==2.1.1
holidays==0.10.5.2
ipykernel==5.5.3
ipython==7.22.0
ipython-genutils==0.2.0
itsdangerous==1.1.0
jedi==0.18.0
Jinja2==2.11.3
jupyter-client==6.1.12
jupyter-core==4.7.1
korean-lunar-calendar==0.2.1
LunarCalendar==0.0.9
MarkupSafe==1.1.1
numpy==1.20.2
pandas==1.2.4
parso==0.8.2
pickleshare==0.7.5
pip==21.0.1
prompt-toolkit==3.0.18
Pygments==2.8.1
PyMeeus==0.3.7
pystan==2.19.1.1
python-dateutil==2.8.1
pytz==2021.1
pyzmq==22.0.3
setuptools==52.0.0
setuptools-git==1.2
six==1.15.0
tornado==6.1
traitlets==5.0.5
wcwidth==0.2.5
Werkzeug==1.0.1
wheel==0.36.2
wincertstore==0.2
有人可以帮我吗?
解决方法
- 添加
.slugignore
以忽略无用的文件。_pycache_
在这里可以忽略。 - 可能在您添加 .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.txt
文件可能很大,以至于超过了 slug 大小限制。