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アプリ「マウンテンチャンネル」を公開しました。よろしくです!
0 件のコメント:
コメントを投稿