我正在尝试编写一个自定义 capistrano 任务,该任务在本地编译我的资产,然后使用 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。我知道我可以对其进行硬编码,但我想正确地做到这一点。