2009-09-21 10 views
9

Mam zdalną konfigurację repozytorium git do scentralizowanego rozwoju w moim zespole. Jednak serwer produkcyjny, na którym obecnie wdrażamy nasze aplikacje, nie ma działającego na nim git. Chcemy użyć capistrano do wdrożenia naszych aplikacji w jaki sposób możemy skonfigurować nasze wdrożenia przepisów, aby "wyciągnąć" z odległych repozytoriów git podczas wdrażania?wdrażanie za pomocą capistrano ze zdalnym repozytorium git ale bez git działającego na serwerze produkcyjnym

Innymi słowy, czy mogę zrobić coś takiego?

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

Odpowiedz

16

Rozwiązanie na twoje pytanie jest bliskie poprawności. Musisz jednak nieco inaczej określić swoje repozytorium git. Co potrzebne jest:

set :repository, "[email protected]:/home/myproject" 
set :scm, "git" 
set :deploy_via, :copy 

Jest więcej przykładów jak założyć instalację git w gem Capistrano pod lib/capistrano/recipes/deploy/scm/git.rb.

Co się dzieje, gdy używasz strategia copy delegowania że Capistrano klonuje swoje git repo do /tmp na lokalnym komputerze, smoły & zamki wynik, a następnie przesyła je do serwera za pośrednictwem SFTP. Strategia kopiowania obsługuje również kopiowanie za pomocą scp, ale nie ma sposobu, aby powiedzieć, aby to zrobić bez hackowania w źródle.

0

Próbowałeś coś takiego

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

Nigdy nie próbowałem tego, ale to wydaje się być swego rodzaju podejściu trzeba by iść na temat korzystania. Trochę więcej wglądu w Capistrano RDocs.

+0

I echo to. Używanie: copy jest jedyną dostępną opcją, chyba że zainstalujesz klienta git na swoim serwerze. –

+0

Jeśli ustawisz 'scm' na none, po prostu zapakujesz kopię tego, co jest na twoim komputerze lokalnym i przekaż ją na serwer, zamiast wykonywać lokalnie klon git i przesyłać go. – Emily

+3

Właściwie, na drugi rzut oka, to się nie uda. Po ustawieniu 'scm' na none,' repozytorium' ma być ścieżką do katalogu, a nie adresem URL. Twoje rozwiązanie będzie szukać katalogu 'myserver.com' na komputerze lokalnym. Zwykle, gdy 'scm' jest none, ustawiasz' repozytorium' na ''.'' – Emily

Powiązane problemy