Для работы Capistrano, должен ли репозиторий быть доступным снаружи?
Я разработал приложение rails в локальном каталоге, где также находится мой git-репозиторий.
Я регулярно делаю:
git add .
git commit -am "it works after my recent changes"
, сейчас я хочу развернуть:
cap deploy
Но это дает мне это сообщение об ошибке (пути немного изменились):
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
executing locally: "git ls-remote D:\\path\\to\\railsapp\\.git HEAD"
* executing "git clone D:\\path\\to\\railsapp\\.git /home/user/railsapp/releases/20110221122258 && cd /home/user/railsapp/releases/20110221122258 && git checkout -b deploy 70426fc8c8e81dff69f3ebf667de4f91dbd90119 && (echo 70426fc8c8e81dff69f3ebf667de4f91dbd90119 > /home/user/railsapp/releases/20110221122258/REVISION)"
servers: ["my.server.tld"]
[my.server.tld] executing command
** [my.server.tld :: out] Initialized empty Git repository in /home/user/railsapp/releases/20110221122258/.git/
** [my.server.tld :: out] Error reading response length from authentication socket.
** [my.server.tld :: out] Permission denied (publickey).
** fatal: The remote end hung up unexpectedly command finished
*** [deploy:update_code] rolling back
* executing "rm -rf /home/user/railsapp/releases/20110221122258; true"
servers: ["my.server.tld"]
[my.server.tld] executing command
command finished
failed: "sh -c 'git clone D:\\path\\to\\railsapp\\.git /home/user/railsapp/releases/20110221122258 && cd /home/user/railsapp/releases/20110221122258 && git checkout -b deploy 70426fc8c8e81dff69f3ebf667de4f91dbd90119&& (echo 70426fc8c8e81dff69f3ebf667de4f91dbd90119 > /home/user/railsapp/releases/20110221122258/REVISION)'" on my.server.tld
Что я делаю не так?
У меня в deploy.rb
require 'bundler/capistrano'
set :user, "username"
set :password, "password"
set :ssh_options, { :forward_agent => true }
set :application, "railsapp"
set :repository, "D:\\path\\to\\railsapp\\.git"
set :scm, :git
set :scm_verbose, true
default_run_options[:pty] = true
set :use_sudo, false
set :deploy_to, "/home/#{user}/#{application}"
role :app, "my.domain.tld"
role :web, "my.domain.tld"
role :db, "my.domain.tld", :primary => true
namespace :deploy do
desc "Restarting mod_rails with restart.txt"
task :restart, :roles => :app, :except => { :no_release => true } do
run "touch #{current_path}/tmp/restart.txt"
end
desc "Additional Symlinks ( database.yml, etc. )"
task :additional_symlink, :roles => :app do
run "ln -s #{shared_path}/config/database.yml #{current_path}/config/database.yml"
end
end
after "deploy:symlink","deploy:additional_symlink","deploy:migrate"