развертывание с помощью capistrano с удаленным git-репо, но без запуска git на рабочем сервере - PullRequest
9 голосов
/ 21 сентября 2009

У меня есть удаленная настройка git-репозитория для централизованной разработки в моей команде. Однако на производственном сервере, на котором мы развертываем наши приложения, на нем не работает git. Мы хотим использовать capistrano для развертывания наших приложений. Как мы можем настроить наши рецепты развертывания для «извлечения» из удаленных репозиториев git при развертывании?

Другими словами, я могу сделать что-то подобное?

set :repository, "myserver.com/git/#{application}.git"
set :scm, "git"
set :deploy_via, :copy

Ответы [ 2 ]

16 голосов
/ 13 октября 2009

Решение в вашем вопросе близко к правильному. Вы должны будете указать свой git-репозиторий немного иначе. Что вам нужно, это:

set :repository, "someuser@somehost:/home/myproject"
set :scm, "git"
set :deploy_via, :copy

Есть еще примеры того, как настроить развертывание git в вашем геме Capistrano в lib/capistrano/recipes/deploy/scm/git.rb.

Что происходит, когда вы используете стратегию развертывания copy, так это то, что Capistrano клонирует ваше git-репо на /tmp на вашем локальном компьютере, отслеживает и архивирует результат, а затем передает его на сервер через sftp. Стратегия копирования также поддерживает копирование через scp, но нет способа заставить ее сделать это, не разбираясь в источнике.

0 голосов
/ 21 сентября 2009

Вы пробовали что-то вроде

set :repository, "myserver.com/git/#{application}"
set :scm, :none
set :deploy_via, :copy

Я никогда не пробовал этого, но, похоже, вам следует использовать именно такой подход. Немного больше информации о Capistrano RDocs .

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