Capistrano deploy: обновление не удается, но настройка и проверка работают - PullRequest
1 голос
/ 30 марта 2012

Я новичок, поэтому извиняюсь, если это глупый вопрос, но может ли кто-нибудь помочь мне расшифровать эту ошибку развертывания?Наконец-то мне удалось заставить «cap deploy: setup» и «cap deploy: check» работать без ошибок.Теперь я застрял в «cap deploy: update».Судя по выводу ошибки, похоже, что есть проблема с моим файлом развертывания, но я понятия не имею, в чем проблема.Вывод оболочки и файл развертывания приведены ниже.Любая помощь будет принята с благодарностью!

Некоторые сведения: я развертываюсь на сервере друга, на котором работает пассажир.Мы используем ruby ​​1.9.2-p290, rails 3.1.3, capistrano 2.11.2 и MacOS 10.6.

Вот пример вывода ошибки развертывания:

my-MacBook-Pro:projectfolder myuser$ cap deploy:update
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote ssh://git@server.example.ca/usr/local/git_root/arbiterapi.git master"
*** [deploy:update_code] rolling back
  * executing "rm -rf /usr/local/www/sites/project.example.ca/releases/20120330191423; true"
    servers: ["project.example.ca"]
    [project.example.ca] executing command
    [project.example.ca] rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.2-p290@project' -c 'rm -rf /usr/local/www/sites/project.example.ca/releases/20120330191423; true'
    command finished in 663ms
/Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:107:in ``': No such file or directory - git ls-remote ssh://git@server.example.ca/usr/local/git_root/project.git master (Errno::ENOENT)
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:107:in `block in run_locally'
    from /Users/myuser/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310:in `realtime'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:106:in `run_locally'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:44:in `block (3 levels) in load'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:96:in `with_env'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:44:in `block (2 levels) in load'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy/scm/git.rb:227:in `query_revision'
... etc.

остальная часть вывода ошибок также указывает на папку capistrano.Вывод кажется слишком длинным, чтобы включать его полностью.Но я могу предоставить остальное, если это может помочь!

Вот файл развертывания:

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load path.
require "rvm/capistrano"                  # Load RVM's capistrano plugin.

set :application, "Project"

set :scm, "git"
set :repository,  "ssh://git@server.example.ca/usr/local/git_root/project.git"
set :user, "deploy"

#set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_ruby_string, "ruby-1.9.2-p290@project"
set :normalize_asset_timestamps, false

ssh_options[:forward_agent] = false

set :branch, "master"

set :deploy_via, :remote_cache

set :deploy_to, "/usr/local/www/sites/project.example.ca/"

set :use_sudo, false

set :domain, 'project.example.ca'

role :app, domain
role :web, domain
role :db,  domain, :primary => true

1 Ответ

0 голосов
/ 31 марта 2012

Ошибка - строка

No such file or directory - git ls-remote ssh://git@server.example.ca/usr/local/git_root/project.git master (Errno::ENOENT)

, поэтому при извлечении из хранилища происходит сбой.Почему у вас есть префикс ssh?При указании пользователя (git@) у вас также не должно быть протокола - для репозитория нужно просто установить

git@server.example.ca/usr/local/git_root/project.git

или любой другой фактический URL для репозитория git для проекта.1008 *

К вашему сведению - ни deploy:setup, ни deploy:check на самом деле не извлекают код, поэтому эти два работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...