Я пытаюсь развернуть свое первое приложение rails с помощью Capistrano и получаю сообщение об ошибке - PullRequest
1 голос
/ 05 марта 2010

Мое развертывание приложения rails с capistrano не выполняется, и я надеюсь, что кто-то может предоставить мне указатели для устранения неполадок. Ниже приведен вывод команды

andrew@melb-web:~/projects/rails/guestbook2$ cap deploy:setup  
  * executing `deploy:setup'  
  * executing "mkdir -p /var/www/dev/guestbook2 /var/www/dev/guestbook2/releases   /var/www/dev/guestbook2/shared /var/www/dev/guestbook2/shared/system    /var/www/dev/guestbook2/shared/log /var/www/dev/guestbook2/shared/pids &&  chmod g+w   /var/www/dev/guestbook2 /var/www/dev/guestbook2/releases /var/www/dev/guestbook2/shared /var/www/dev/guestbook2/shared/system /var/www/dev/guestbook2/shared/log /var/www/dev/guestbook2/shared/pids"
    servers: ["dev.andrewbucknell.com"]
Enter passphrase for /home/andrew/.ssh/id_dsa: 
Enter passphrase for /home/andrew/.ssh/id_dsa: 
    [dev.andrewbucknell.com] executing command
    command finished
andrew@melb-web:~/projects/rails/guestbook2$ cap deploy:check
  * executing `deploy:check'
  * executing "test -d /var/www/dev/guestbook2/releases"
    servers: ["dev.andrewbucknell.com"]
Enter passphrase for /home/andrew/.ssh/id_dsa: 
    [dev.andrewbucknell.com] executing command
    command finished
  * executing "test -w /var/www/dev/guestbook2"
    servers: ["dev.andrewbucknell.com"]
    [dev.andrewbucknell.com] executing command
    command finished
  * executing "test -w /var/www/dev/guestbook2/releases"
    servers: ["dev.andrewbucknell.com"]
    [dev.andrewbucknell.com] executing command
    command finished
  * executing "which git"
    servers: ["dev.andrewbucknell.com"]
    [dev.andrewbucknell.com] executing command
    command finished
  * executing "test -w /var/www/dev/guestbook2/shared"
    servers: ["dev.andrewbucknell.com"]
    [dev.andrewbucknell.com] executing command
    command finished
You appear to have all necessary dependencies installed
andrew@melb-web:~/projects/rails/guestbook2$ cap deploy:migrations
  * executing `deploy:migrations'
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote andrew@dev.andrewbucknell.com:/home/andrew/git/guestbook2.git master"
Enter passphrase for key '/home/andrew/.ssh/id_dsa': 
  * executing "if [ -d /var/www/dev/guestbook2/shared/cached-copy ]; then cd /var/www/dev/guestbook2/shared/cached-copy && git fetch  origin && git reset  --hard 369c5e04aaf83ad77efbfba0141001ac90915029 && git clean  -d -x -f; else git clone  andrew@dev.andrewbucknell.com:/home/andrew/git/guestbook2.git /var/www/dev/guestbook2/shared/cached-copy && cd /var/www/dev/guestbook2/shared/cached-copy && git checkout  -b deploy 369c5e04aaf83ad77efbfba0141001ac90915029; fi"
    servers: ["dev.andrewbucknell.com"]
Enter passphrase for /home/andrew/.ssh/id_dsa: 
    [dev.andrewbucknell.com] executing command
 ** [dev.andrewbucknell.com :: err] Permission denied, please try again.
 ** Permission denied, please try again.
 ** Permission denied (publickey,password).
 ** [dev.andrewbucknell.com :: err] fatal: The remote end hung up unexpectedly
 ** [dev.andrewbucknell.com :: out] Initialized empty Git repository in /var/www/dev/guestbook2/shared/cached-copy/.git/
    command finished
failed: "sh -c 'if [ -d /var/www/dev/guestbook2/shared/cached-copy ]; then cd /var/www/dev/guestbook2/shared/cached-copy && git fetch  origin && git reset  --hard 369c5e04aaf83ad77efbfba0141001ac90915029 && git clean  -d -x -f; else git clone  andrew@dev.andrewbucknell.com:/home/andrew/git/guestbook2.git /var/www/dev/guestbook2/shared/cached-copy && cd /var/www/dev/guestbook2/shared/cached-copy && git checkout  -b deploy 369c5e04aaf83ad77efbfba0141001ac90915029; fi'" on dev.andrewbucknell.com
andrew@melb-web:~/projects/rails/guestbook2$

Следующий фрагмент из cap -d deploy:migrations

Preparing to execute command: "find /var/www/dev/guestbook2/releases/20100305124415/public/images /var/www/dev/guestbook2/releases/20100305124415/public/stylesheets /var/www/dev/guestbook2/releases/20100305124415/public/javascripts -exec touch -t 201003051244.22 {} ';'; true"
Execute ([Yes], No, Abort) ?  |y|  yes
  * executing `deploy:migrate'
  * executing "ls -x /var/www/dev/guestbook2/releases"
Preparing to execute command: "ls -x /var/www/dev/guestbook2/releases"
Execute ([Yes], No, Abort) ?  |y|  yes
/usr/lib/ruby/gems/1.8/gems/capistrano-2.5.17/lib/capistrano/recipes/deploy.rb:55:in `join': can't convert nil into String (TypeError)
    from /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.17/lib/capistrano/recipes/deploy.rb:55:in `load'

Ответы [ 4 ]

4 голосов
/ 05 марта 2010

Я добавил default_run_options [: pty] = true в мой deploy.rb и все работало нормально. Я работаю на Debian - думаю, ему нужен собственный pty или что-то еще, чтобы получить нужные разрешения. Спасибо за ваши советы, ребята.

0 голосов
/ 05 марта 2010

Похоже, что git (на сервере) испытывает трудности с аутентификацией на сервере git.

0 голосов
/ 05 марта 2010

Для меня было очень полезно запустить cap deploy:check, прежде чем делать что-то еще. Как только это прошло без ошибок, стало намного проще разобраться во всем остальном.

0 голосов
/ 05 марта 2010

Похоже, проблема с правами доступа на стороне сервера.

Enter passphrase for /home/andrew/.ssh/id_dsa: 
[dev.andrewbucknell.com] executing command 
** [dev.andrewbucknell.com :: err] Permission denied, please try again. 
** Permission denied, please try again. 
** Permission denied (publickey,password). 
** [dev.andrewbucknell.com :: err] fatal: The remote end hung up unexpectedly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...