Capistrano + Git: хранилище локально для рабочего сервера - PullRequest
18 голосов
/ 19 февраля 2010

Я пытаюсь выполнить «развернуть: холодно» для моего приложения. Git репо является локальным для мой сервер развертывания (т.е. у меня есть только один сервер для всего, и я не размещайте мой код на github).

Вот расшифровка (имя моего приложения заменено на «myapp» для конфиденциальности)

  * executing `deploy:cold'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    executing locally: "git ls-remote /home/mrichman/git/myapp.git master"
fatal: '/home/mrichman/git/myapp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/myapp.com/releases/20100218203108; true"
    servers: ["myapp.com"]
Password:
    [myapp.com] executing command
    command finished
Command git ls-remote /home/mrichman/git/myapp.git master returned status code 32768

Вот мой deploy.rb: http://pastie.org/831424

Я тоже пробовал

set :repository, "deploy@localhost:/home/mrichman/git/myapp.git"

но это дает мне

ssh: connect to host localhost port 22: Connection refused

Любые идеи приветствуются.

Ответы [ 5 ]

16 голосов
/ 28 февраля 2010

Просто столкнулся с той же проблемой. Ключ заключается в том, чтобы не использовать копию deploy_via, а вместо этого установить: local_repository

Это должен быть URL-адрес, который вы используете для доступа к хранилищу с вашего компьютера / ноутбука разработки.

Так что у меня есть

set :repository, "file:///srv/git/myapp.git"
set :local_repository, "nameOfHostFromSSHConfig:/srv/git/myapp.git"

Кажется, сработало. Просто не забудьте затем удалить строку копирования deploy_via.

1 голос
/ 19 февраля 2010

Войдите в систему как пользователь сайта, на котором вы развертываете, и попробуйте это, чтобы увидеть, есть ли у вашего пользователя разрешение на доступ к этому каталогу:

ls -la /home/mrichman/git/myapp.git

Если вы получили сообщение об ошибке «Отказано в доступе», вам необходимо убедиться, что вы установили разрешения для вложенных каталогов хранилища, которые позволяют сценарию развертывания получать доступ к файлам.

0 голосов
/ 13 ноября 2012

Если установлено local_repository, Capistrano использует значение respository с сервера развертывания и значение local_respository с сервера разработки. Или что-то в этом роде.

Моя конфигурация работала так:

set :repository, "/home/#{user}/path/to/repo.git"
set :local_repository, "myserver.com:path/to/repo.git"
0 голосов
/ 22 августа 2012

Моя проблема была связана с проблемой известных хостов. Все, что мне нужно было сделать, - это убедиться, что удаленный git-сервер был на моих известных хостах (при первой попытке SSH-подключения к нему будет предложено добавить это самостоятельно), и он работал как чудо.

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

Убедитесь, что вы написали правильное git-репо с заботливым чувствительным к регистру написанием!(Я столкнулся с той же проблемой, она только что решена)

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