Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 部署到Heroku时出错,无法运行重新打包_Ruby On Rails_Heroku_Asset Pipeline - Fatal编程技术网

Ruby on rails 部署到Heroku时出错,无法运行重新打包

Ruby on rails 部署到Heroku时出错,无法运行重新打包,ruby-on-rails,heroku,asset-pipeline,Ruby On Rails,Heroku,Asset Pipeline,在编译资产并启动应用程序后部署到Heroku时,我遇到一个错误: -----> Compiled slug size: 172.8MB -----> Launching... done, v274 -----> Deploy hooks scheduled, check output in your logs http://mysite.com deployed to Heroku Auto packing the repository for optimum

在编译资产并启动应用程序后部署到Heroku时,我遇到一个错误:

-----> Compiled slug size: 172.8MB
-----> Launching... done, v274
-----> Deploy hooks scheduled, check output in your logs
       http://mysite.com deployed to Heroku

Auto packing the repository for optimum performance.
error: Could not read ddb3b2358b3ea331cea15b03a8657f929364ec8c
fatal: Failed to traverse parents of commit c30cd906cd578d9618a4605cefa6e55ac535b42e
error: failed to run repack

部署似乎即将完成,并且部署了最新的Ruby代码,但是没有提供我最新的JS更改。对可能发生的事情有什么想法吗?

这可能是由浅克隆引起的问题。如果没有完整的历史记录,则无法完全遍历树,从而导致悬空提交。这通常发生在CI系统中,其中CI执行浅克隆以节省带宽和/或延迟

最好的做法是避免浅层克隆

如果完整克隆和强制推送不起作用,您可能需要重置回购协议。重置您的回购将应用程序的回购重新初始化为裸回购。您正在运行的应用程序不会受到影响。在Heroku上有一个用于重置回购协议的实用插件:

安装后,运行heroku repo:reset,然后再次按下


如果上述技术不起作用,请记录一张支持票。

看起来像是文件大小问题(以前在git gc中见过)。您的回购有多大?听起来Heroku上的部署可能内存不足。尝试过了git push--force吗?我的git repo是45.4MB,目前部署到Heroku没有问题。据我所知,建造是由Heroku的一名工人dyno进行的。因此,如果Heroku可能像@CDub假设的那样耗尽内存,我可以想到的一种方法是将工作动态从1X配置为2X。2X dynos有1GB的RAM,而1X dynos有512MB(截至2014年1月)。由于您的回购约为45MB,但编译的段塞大小几乎是该大小的4倍,因此出现了一些问题。。。我对Heroku的经验是,他们的dynos最多只能支持约90MB的slug大小,可能是100MB。在部署之前,您还可以在CI服务器上运行
git fetch--unshall
。它在CircleCI上帮助了我们。