アセットをローカルでコンパイルし、rsync を使用して本番サーバーにプッシュするカスタム カピストラーノ タスクを作成しようとしています。問題は、capistrano を使用しているときにアプリ サーバーの IP アドレスにアクセスする方法がわからないことですrun_locally
。
ここに私のからの抜粋がありますconfig/deploy.rb
:
server "[some_ip_address]", :web, :app, :db, :primary => true
...
namespace :assets do
desc 'Run the precompile task locally and rsync with shared'
task :precompile, :roles => :web, :except => { :no_release => true } do
run_locally "bundle exec rake assets:precompile"
run_locally "rsync -zvrh --progress -e 'ssh -i #{ssh_options[:keys][0]}' public/assets #{user}@$CAPISTRANO:HOST$:#{shared_path}"
puts "cleaning up locally compiled assets"
run_locally "bundle exec rake assets:clean"
end
end
問題は$CAPISTRANO:HOST$
、IP に展開されないことです。ハードコーディングできることはわかっていますが、適切に行いたいと思います。