Forked from evg2108/capistrano_deploy_strategies.md
Created
December 3, 2018 15:48
-
-
Save ed-fruty/ad5f17b7d7535841d3e585992843787c to your computer and use it in GitHub Desktop.
Revisions
-
evg2108 renamed this gist
Oct 12, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
evg2108 created this gist
Oct 12, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,64 @@ #Стратегии деплоймента в Capistrano Стратегии деплоймента в Rails настраиваются в файле config/deploy.rb. Сама настройка сводится к установке нескольких встроенных переменных в определённые значения. ```Ruby # эта стратегия используется по умолчанию. Сводится она к тому, # что на :app сервере запускается приложение svn которое обращается # к удалённому репозиторию и делает checkout указанного проекта. set :deploy_via, :checkout ``` ```Ruby # Эта стратегия похожа на ту что описана выше, за исключением # того что вместо checkout-а используется export для SVN это # например означает то, что будет получена "чистая" копия # приложения (без .svn директорий) set :deploy_via, :export ``` ```Ruby # В этой стратегии на сервере в каталоге # <you app>/shared/cached-copy содержится checkout копия # приложения и при обновлении приложения выполняется действие # update (а не checkout) как следствие увеличивается скорость # обновления и уменьшается трафик # После обновления содержимое каталога cached-copy копируется # в текущий каталог приложения. set :deploy_via, :remote_cache ``` ```Ruby # В этой стратегии происходит следующее: на вашей локальной # машине из репозитория берётся checkout копия приложения, # упаковывается утилитами tar и gzip, а затем при помощи sftp # отправляется на сервер где средствами Capistrano # разворачивается в текущую директорию приложения. set :deploy_via, :copy ``` И соответственно несколько примеров использования ```Ruby # Взять приложение из репозитория исключая файлы или директории # с именами '.git' и '.svn' и скопировать его на сервер set :deploy_via, :copy set :copy_exclude, [".svn", ".git"] ``` ```Ruby # Взять приложение из репозитория (используя действие export) и # скопировать его на сервер предварительно упаковав tar+gz set :deploy_via, :copy set :copy_strategy, :export ``` ```Ruby # В данном случае вместо сжатия архиваторами tar+gz используется # сжатие zip архиватором set :deploy_via :copy set :copy_compression, :zip ``` ```Ruby # Keep a local checkout copy up to date and copy that. # В первый раз на локальной машине из репозитория берётся # checkout копия приложения (а во все остальные происходит # update этой копии), затем пакуется и отправляется на сервер set :deploy_via, :copy set :copy_cache, true ``` Источник: http://maksd.info/blog/vse-posty-iz-starogo-bloga/message-4/