デプロイ負荷軽減のため、ローカルで assets:precompile
するように capistrano
の設定を変更したら今まで動いていたデプロイタスクが動かなくなった。
動かなくなったタスクはこうなっている。
task :hoge do on roles(fetch(:assets_roles)) do ... end end
原因は :assets_roles
のデフォルト設定がされなくなったこと。:assets_roles
は デフォルトで :web
が設定されるが、このデフォルト設定は Capfile
で
require 'capistrano/rails/assets'
としていた場合のみ有効となる。
今回、ローカルで assets:precompile
するために require 'capistrano/rails/assets'
を外していたためデフォルト設定がされなくなっていた。
ということで、:assets_roles
を自前で設定すれば解決する。deploy.rb
に
set :assets_roles, [:web]
と記述すればOK 👍