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.
Стратегии деплоймента в Capistrano
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 characters
| #Стратегии деплоймента в 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/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment