로컬로 자산을 컴파일하는 사용자 지정 capistrano 작업을 작성한 다음 rsync를 사용하여 프로덕션 서버로 밀어 넣으려고합니다. 문제는 capistrano의 run_locally
을 사용할 때 내 앱 서버의 IP 주소에 액세스하는 방법을 파악할 수 없다는 것입니다.Capistrano 작업에서 원격 IP 가져 오기
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에게 확장하지 않는다는 것입니다 : 여기
config/deploy.rb
에서 발췌 한 것입니다. 나는 그것을 어렵게 코드화 할 수 있다는 것을 알고 있지만, 나는 그것을 올바르게하고 싶다.
set :host, "some IP addresss"
server host, :web, :app, :db, :primary => true
을하고 작업 정의 :
run_locally "... #{host} ..."
이것은 정확히 내가 찾고있는 것입니다. 감사! – Matthew