Skip to content

Instantly share code, notes, and snippets.

@evg2108
Created October 12, 2015 15:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save evg2108/04d09958e1dcfc9dd289 to your computer and use it in GitHub Desktop.
Save evg2108/04d09958e1dcfc9dd289 to your computer and use it in GitHub Desktop.
Стратегии деплоймента в Capistrano

#Стратегии деплоймента в Capistrano Стратегии деплоймента в Rails настраиваются в файле config/deploy.rb. Сама настройка сводится к установке нескольких встроенных переменных в определённые значения.

# эта стратегия используется по умолчанию. Сводится она к тому,
# что на :app сервере запускается приложение svn которое обращается 
# к удалённому репозиторию и делает checkout указанного проекта.
set :deploy_via, :checkout
# Эта стратегия похожа на ту что описана выше, за исключением
# того что вместо checkout-а используется export для SVN это
# например означает то, что будет получена "чистая" копия 
# приложения (без .svn директорий)
set :deploy_via, :export
# В этой стратегии на сервере в каталоге
# <you app>/shared/cached-copy содержится checkout копия
# приложения и при обновлении приложения выполняется действие 
# update (а не checkout) как следствие увеличивается скорость 
# обновления и уменьшается трафик
# После обновления содержимое каталога cached-copy копируется 
# в текущий каталог приложения.
set :deploy_via, :remote_cache
# В этой стратегии происходит следующее: на вашей локальной
# машине из репозитория берётся checkout копия приложения, 
# упаковывается утилитами tar и gzip, а затем при помощи sftp
# отправляется на сервер где средствами Capistrano 
# разворачивается в текущую директорию приложения.
set :deploy_via, :copy

И соответственно несколько примеров использования

# Взять приложение из репозитория исключая файлы или директории
# с именами '.git' и '.svn' и скопировать его на сервер
set :deploy_via, :copy
set :copy_exclude, [".svn", ".git"]
# Взять приложение из репозитория (используя действие export) и
# скопировать его на сервер предварительно упаковав tar+gz
set :deploy_via, :copy
set :copy_strategy, :export
# В данном случае вместо сжатия архиваторами tar+gz используется
# сжатие zip архиватором
set :deploy_via :copy
set :copy_compression, :zip
# 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/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment