アプリを Amazon の Opsworks にデプロイすると、アセットの事前コンパイルの手順が定期的に失敗します。
シェフのレシピは次のようになります。
node[:deploy].each do |application, deploy|
deploy deploy[:deploy_to] do
before_restart do
rails_env = deploy[:rails_env]
current_release = release_path
execute "rake assets:precompile" do
user deploy[:user]
cwd current_release
command "bundle exec rake assets:precompile"
environment "RAILS_ENV" => rails_env
end
end
end
end
...これにより、次のエラーが生成されます。
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received ''
---- Begin output of bundle exec rake assets:precompile ----
STDOUT:
STDERR: I, [2014-07-15T02:05:30.399857 #12281] INFO -- : Writing <asset path>
...
...
...
---- End output of bundle exec rake assets:precompile ----
Ran bundle exec rake assets:precompile returned
コンパイル手順は成功したように見えますが、Chef がエラーを出すのはなぜですか?