Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save ed-fruty/ad5f17b7d7535841d3e585992843787c to your computer and use it in GitHub Desktop.

Select an option

Save ed-fruty/ad5f17b7d7535841d3e585992843787c to your computer and use it in GitHub Desktop.

Revisions

  1. @evg2108 evg2108 renamed this gist Oct 12, 2015. 1 changed file with 0 additions and 0 deletions.
  2. @evg2108 evg2108 created this gist Oct 12, 2015.
    64 changes: 64 additions & 0 deletions capistrano_deploy_strategies
    Original 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/