Heroku部署导致“Multipack app”超时

时间:2014-01-20 17:57:12

标签: ruby-on-rails ruby ruby-on-rails-3 heroku ruby-on-rails-3.2

我正在尝试将我的应用部署到heroku,但每次挂起超过15分钟后都会导致此错误。

       AssetSync: using default configuration from built-in initializer

 !     Timed out compiling Multipack app (15 minutes)
 !     See https://devcenter.heroku.com/articles/slug-compiler#time-limit

To git@heroku.com:examplesite.git
 ! [remote rejected] refs/heroku_san/deploy -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:examplesite.git'
git update-ref -d refs/heroku_san/deploy
rake aborted!
Command failed with status (1): [git push git@heroku.com:examplesite...]

我正在使用heroku_san,但是当我执行git push heroku master时会出现同样的错误。任何帮助将非常感激!我正在运行rails 3.2

3 个答案:

答案 0 :(得分:1)

在.buildpacks文件中,确保您指向的存储库是https而不是http。在这里看到了答案https://github.com/ddollar/heroku-buildpack-multi/issues/16

答案 1 :(得分:0)

您应该将资产缓存在memcached中以加快部署速度。

如果您缓存已编译的资产,则可以大大加快资产编译时间和整体部署时间。如果您有memcached服务或添加一个服务,则可以轻松添加小型资产缓存层。这会将生成的资产写入缓存,并仅编译自上次部署以来每个新部署中更改的资产。未更改的资产将按原样从缓存中提取。

在高级别,你需要:

  • 添加Heroku memcached插件
  • 配置memcached客户端gem(如dalli)
  • 在memcached中设置资产管道资产缓存

此博客文章中的完整详细信息描述了使用memcached进行Heroku资产缓存:http://blog.alexmaccaw.com/faster-deploys

答案 2 :(得分:0)

我最终使用了turbo-sprockets-rails3 gem,这确保了我不会多次预​​编译资产,以及缓存它们,因此后续预编译只会预编译已更改的文件。