我已经花了半天的时间来调试Heroku错误,在这个错误中,由于一个slug编译错误,我无法将代码推送到我的临时服务器:
Compiled slug size: 320.5MB is too large (max is 300MB).
我已经将所有资产移动到AWS3,并创建了一个包含以下信息的.slugignore文件:
*.psd
*.pdf
test
spec
features
doc
public
我还能用什么策略呢?最奇怪的是,据我所知,代码和生产服务器是一样的,推送到生产服务器也没有任何错误。
8条答案
按热度按时间eulz3vhy1#
在添加.slugignore文件之前,可能有一些大文件被添加到了git repo中,而现在它们在slug缓存中或者作为git refs。git-repo plugin有一些命令可以解决这些问题:
将运行git gc --在你的回购协议上咄咄逼人。
这将删除生成缓存,然后您可能应该运行以重新生成应用程序。
hwazgwia2#
这对我很有效
将运行git gc --在你的回购协议上咄咄逼人。
然后我手动地把代码推给了Heroku
kmynzznz3#
在我的例子中,我忘了添加构建包,所以我的slug达到了
624.4MB
我所做的是添加这些:
再次delpoying后,我的鼻涕虫大小是
393.9MB
goucqfw64#
这对我很有效:
$ heroku repo:gc -a appname
$ heroku repo:purge_cache -a appname
个$ heroku repo:reset -a appname
fsi0uk1n5#
段塞尺寸
您的嵌块大小会在成功编译结束时显示在“正在压缩”消息之后。允许的嵌块大小上限(压缩后)为500 MB。
您可以使用
heroku run bash
以及ls
和du
等指令来检查slug的萃取内容。Slug的大小会因您使用的语言和框架、添加了多少依赖项以及应用的其他特定因素而有很大的不同。较小的Slug可以更快地传输到dyno管理器,从而实现更快速的缩放。您应该尽量使Slug保持尽可能小和灵活。
以下是一些减小段塞尺寸的技术:
1.将大型资源(如PDF或音频文件)移动到asset storage。
1.通过
.slugignore
删除不必要的依赖项并排除不必要的文件。1.清除组建快取。
ix0qys7i6#
我知道这是针对Ruby on Rails的,但对于我的项目,我有许多Python依赖项,这极大地增加了slugsize。
所以我认为你可以把开发和生产的依赖性分开。
vof42yt17#
我也得到了同样的错误,删除requirement.txt中不必要的依赖项解决了这个问题。所以试着删除一些在你的应用程序中没有使用的依赖项。希望它能有所帮助!
w8biq8rn8#
我可以通过运行
git gc
修复此问题。