Я устанавливаю новый проект с Capistrano, и хотя я могу успешно запустить cap deploy:setup
, если я пытаюсь развернуть свой проект, я получаю ошибку ниже
→ cap deploy
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git info git@github.com:foo/Baconalytics.git -rHEAD"
git: 'info' is not a git command. See 'git --help'.
Did you mean one of these?
init
mailinfo
*** [deploy:update_code] rolling back
У меня есть несколько других проектов, которые нормально развертываются с той же машины, но этот не будет. Git установлен на моем хосте и цели. Кто-нибудь знает шаги по устранению неполадок, которые я могу предпринять?
Мой файл deploy.rb:
require "bundler/capistrano"
set :application, "baconalyitcs"
set :repository, "git@github.com:foo/Baconalytics.git"
set :scm_command, "git"
set :deploy_to, "/root/baconalytics"
set :branch, "master"
set :user, "root"
set :use_sudo, false
ssh_options[:forward_agent] = true
set :deploy_via, :remote_cache
set :ruby_prefix, "/usr/bin/ruby"
set :deploy_user, "#{ENV['USER']}"
role :worker, "xxx.compute-1.amazonaws.com", :primary => true
role :namenode, "xxx.compute-1.amazonaws.com"
after "deploy", "deploy:bundle_gems"
after "deploy", "deploy:print_success_banner"
namespace :deploy do
task :print_success_banner do
puts "---------------------------------------------------"
puts "--------------- DEPLOY SUCCEEDED ------------------"
puts "---------------------------------------------------"
end
task :bundle_gems, :roles => [:worker] do
run "rm -rf /mnt/app/current/vendor/cache; true"
run "if [ -f /mnt/app/current/Gemfile.lock ]; then rm /mnt/app/current/Gemfile.lock; fi;"
cmd = [
"cd #{current_path}",
"#{ruby_prefix}/bundle install",
].join(" && ")
run cmd
end
end
task :ssh do
role = ARGV[1]
servers = @roles[role.to_sym].servers rescue @roles[role.to_sym]
puts instances = `rake ec2:din` unless server
instances = instances.split("\n") unless server
system "ssh -o StrictHostKeyChecking=no root@#{(server || instances[ssh_server.to_i].split("\t")[2])}"
end