1

当我突然意识到它有一个小错误时,我的小rails-app(基于refinerycms)运行良好。修复它,测试正常,提交,推送,部署,常规程序。然而这一次我的部署(之前已经工作了无数次)在我身上崩溃assets:precompile

    * 2012-12-21 11:44:59 executing `deploy:assets:precompile'
    * executing "cd /home/somename/releases/20121221104442 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
      servers: ["ssh.alwaysdata.com"]
      [ssh.alwaysdata.com] executing command
  *** [err :: ssh.alwaysdata.com] rake aborted!
  *** [err :: ssh.alwaysdata.com] Invalid argument - /nfs/http9/somename/app/ttvz/releases/20121221104442/tmp/cache/assets/D17/790/sprockets%2F159b50b9f479a8cb2519ea6a40f09f92
  *** [err :: ssh.alwaysdata.com] /home/somename/app/ttvz/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/core_ext/file/atomic.rb:38:in `chown'
  ...

当然还有一大堆 Stacktrace。我试图在网上找到一些东西,但失败了。当我尝试预编译current应用程序版本的资产时,同样的事情也发生了(这在开发中就像一个魅力)。

这似乎与precompileStackOverflow 上的其他问题不同。

4

2 回答 2

2

与公众的看法相反,这不是我的错误。我开始查找 of 的来源,atomic.rb并认为调用 tochown实际上最终什么都不做。因此,我在 alwaysdata 用户论坛上留下了一条消息,将其修补了。我的(丑陋的)小补丁部署再次像以前一样工作。

几个小时后,一位友好的工作人员告诉我,这让他怀疑最近的内核升级出了问题。他在同一天晚上修复了它,一切都恢复了(没有我的补丁)。

于 2012-12-22T17:53:45.843 回答
0

它写在您的主机教程 (http://wiki.alwaysdata.com/wiki/Deploying_a_Rails_3_application) 中,您必须在开发环境中部署您的应用程序。在这种环境中,资产没有预编译,因此您不会遇到同样的问题。

我建议为 heroku 或 amazon 切换主机,您可以在生产环境中运行您的应用程序!

于 2012-12-21T12:33:55.310 回答