2014年12月23日火曜日

Capistrano3 本番ビルドでdeploy:assets:precompileエラー。

Capistrano3を使ったrailsアプリのビルドで3時間くらいはまったのでメモ。

環境

  • rails(ruby2.1.0, rails4.1.6)
  • さくらvps

Capistrano3でビルドをすると、deploy:assets:precompileで必ずエラーになってしまう現象が発生した。
vagrantを使った開発環境では何の問題もなかった。

しばらく調査をしたところ、さくらvpsのsyslogにメモリが不足しているというログが見つかった。
どうやらvpsサーバーだと、rake assets:precompileでスワップメモリが不足し、失敗とみなされてしまうようだ。

解決方法は単純で、Capistrano3配置時にdeploy:assets:precompileを行わなければよい。
rake assets:precompileはローカルで行えばよい。

Capistrano3でdeploy:assets:precompileを実行しないようにするには、deploy.rbを以下のように変更する。


namespace :deploy do

  namespace :assets do

    Rake::Task['deploy:assets:precompile'].clear_actions
    
    desc "Precompile assets"
    task :precompile do
      puts "-----nothing-------"
    end
  end

end

Rake::Task['deploy:assets:precompile'].clear_actionsを書き忘れてしばらくはまってしまいました。ご注意を。

それにしてもcapistranoは学習コストが高過ぎると思うのは、私だけだろうか。
結局ソースコードを読まないと解決できないということが多すぎる気がする。


山情報&登山SNSアプリ「マウンテンチャンネル」を公開しました。よろしくです!

マウンテンチャンネル公式サイト

Android app on Google Play
参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...