Почему Capistrano 2 отказывается от развертывания кэпа: холодно после развертывания кэпа: установка прошла успешно? - PullRequest
1 голос
/ 23 декабря 2010

Я пытаюсь развернуть приложение Rails3 с помощью Capistrano (2.5.19). Я успешно запустил:

cap deploy:setup

и правильные каталоги созданы на сервере. Но когда я запускаю cap deploy: cold или cap deploy, скрипт зависает на полпути.

    shell$ cap deploy:cold
  * executing `deploy:cold'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    executing locally: "git ls-remote git@server.foo.com:test.git master"
  * executing "git clone -q git@server.foo.com:test.git /home/deployer/www/apps/test/releases/20101223162936 && cd /home/deployer/www/apps/test/releases/20101223162936 && git checkout -q -b deploy be3165b74d52540742873c125fb85d04e1ee3063 && git submodule -q init && git submodule -q sync && git submodule -q update && (echo be3165b74d52540742873c125fb85d04e1ee3063 > /home/deployer/www/apps/test/releases/20101223162936/REVISION)"
    servers: ["server.foo.com"]
    [server.foo.com] executing command

Вот мой deploy.rb:

$:.unshift(File.expand_path("~/.rvm/lib"))
    require 'rvm/capistrano'
    set :rvm_ruby_string, 'jruby'

    # main details
    set :application, "test_sqlserver"
    role :web, "server.foo.com"
    role :app, "server.foo.com"
    role :db,  "server.foo.com", :primary => true

    # server details
    default_run_options[:pty] = true
    ssh_options[:forward_agent] = true
    set :deploy_to, "/home/deployer/www/apps/#{application}"
    set :deploy_via, :checkout
    set :user, :deployer
    set :use_sudo, false

    # repo details
    set :scm, :git
    set :repository, "git@server.foo.com:test.git"
    set :branch, "master"
    set :git_enable_submodules, 1

Я считаю, что мои права доступа к файлам настроены правильно

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Похоже, что в JRuby есть ошибка, по крайней мере, с 1.6.5 - см. Переадресация агента SSH не работает с jRuby (что приводит к сбою развертывания capistrano ssh)

Очевидно, что одним из "обходных путей" является не использовать переадресацию агента SSH, хотя это может быть неприемлемым. Если вы хотите, чтобы проблема была замечена и исправлена ​​быстрее (я знаю, что знаю), то наблюдение за этой проблемой может помочь.

0 голосов
/ 16 марта 2011

Похоже, вы не можете запустить Capistrano под jruby, так как jruby-openssl не поддерживает Net:SSH, который лежит в основе Capistrano.

http://jruby -extras.rubyforge.org / JRuby-OpenSSL /

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