Heroku:编译的Slug大小太大

zsbz8rwp  于 2022-11-13  发布在  其他
关注(0)|答案(8)|浏览(161)

我已经花了半天的时间来调试Heroku错误,在这个错误中,由于一个slug编译错误,我无法将代码推送到我的临时服务器:

Compiled slug size: 320.5MB is too large (max is 300MB).

我已经将所有资产移动到AWS3,并创建了一个包含以下信息的.slugignore文件:

*.psd
*.pdf
test
spec
features
doc
public

我还能用什么策略呢?最奇怪的是,据我所知,代码和生产服务器是一样的,推送到生产服务器也没有任何错误。

eulz3vhy

eulz3vhy1#

在添加.slugignore文件之前,可能有一些大文件被添加到了git repo中,而现在它们在slug缓存中或者作为git refs。git-repo plugin有一些命令可以解决这些问题:

$ heroku repo:gc -a appname

将运行git gc --在你的回购协议上咄咄逼人。

$ heroku repo:purge_cache -a appname

这将删除生成缓存,然后您可能应该运行以重新生成应用程序。

$ heroku repo:rebuild -a appname
hwazgwia

hwazgwia2#

这对我很有效

$ heroku repo:gc -a appname

将运行git gc --在你的回购协议上咄咄逼人。

$ heroku repo:purge_cache -a appname

然后我手动地把代码推给了Heroku

$ git push heroku-prod master
kmynzznz

kmynzznz3#

在我的例子中,我忘了添加构建包,所以我的slug达到了624.4MB
我所做的是添加这些:

再次delpoying后,我的鼻涕虫大小是393.9MB

goucqfw6

goucqfw64#

这对我很有效:
$ heroku repo:gc -a appname
$ heroku repo:purge_cache -a appname
$ heroku repo:reset -a appname

fsi0uk1n

fsi0uk1n5#

段塞尺寸

您的嵌块大小会在成功编译结束时显示在“正在压缩”消息之后。允许的嵌块大小上限(压缩后)为500 MB。
您可以使用heroku run bash以及lsdu等指令来检查slug的萃取内容。
Slug的大小会因您使用的语言和框架、添加了多少依赖项以及应用的其他特定因素而有很大的不同。较小的Slug可以更快地传输到dyno管理器,从而实现更快速的缩放。您应该尽量使Slug保持尽可能小和灵活。
以下是一些减小段塞尺寸的技术:
1.将大型资源(如PDF或音频文件)移动到asset storage
1.通过.slugignore删除不必要的依赖项并排除不必要的文件。
1.清除组建快取。

ix0qys7i

ix0qys7i6#

我知道这是针对Ruby on Rails的,但对于我的项目,我有许多Python依赖项,这极大地增加了slugsize。
所以我认为你可以把开发和生产的依赖性分开。

vof42yt1

vof42yt17#

我也得到了同样的错误,删除requirement.txt中不必要的依赖项解决了这个问题。所以试着删除一些在你的应用程序中没有使用的依赖项。希望它能有所帮助!

w8biq8rn

w8biq8rn8#

我可以通过运行git gc修复此问题。

相关问题