Да, вам все еще нужен Capfile.
ШАГ 1. Создайте Capfile с помощью следующей команды, запустив его из каталога проекта:
capify .
(Это также создаст config / deploy.rb)
ШАГ 2. Отредактируйте этот новый Capfile согласно readme railsless-deploy так, чтобы он имел следующее содержимое:
require 'rubygems'
require 'railsless-deploy'
load 'config/deploy'
На данный момент вы можете запустить
cap -T
и вы должны увидеть такие задачи, как «cap deploy» в списке. Однако capistrano пока ничего не знает о ваших целевых серверах и т. Д.
ШАГ 3. Отредактируйте config / deploy.rb, чтобы предоставить подробную информацию о вашем SCM, именах серверов и т. Д.
Для получения справки по этому вопросу см. Раздел «Конфигурация» в Capistrano «С самого начала» вики.
Вы также можете переопределить задачу развертывания здесь, если значение по умолчанию, предоставленное railsless-deploy, не подходит.
Минимальный config / deploy.rb может выглядеть следующим образом:
set :user, "myuser"
set :application, "myapp"
set :repository, "https://github.com/me/myapprepo"
set :scm, :git
default_run_options[:pty] = true
role :web, "myhost.example.com"
role :app, "myhost.example.com"
Конечно, вы должны исправить вышеперечисленное, указав данные своего приложения, хоста и логина.
Затем вы можете следовать типичному пути
cap deploy:setup
cap deploy:check
cap deploy
# ... etc
Однако после cap deploy: программа установки создала дерево каталогов развертывания (по умолчанию что-то вроде / u / apps / myapp /) на удаленных серверах, вам может потребоваться изменить владельца (или разрешения) для Кап развернуть, чтобы запустить. Следующее будет рекурсивно менять владельца и группу / u / apps / myapp / на пользователя «myuser».
sudo chown -R myuser. /u/apps/myapp
На наших серверах я фактически создаю этот каталог / u / apps / и меняю его владельца при подготовке сервера (скажем, с puppet) задолго до того, как capistrano их увидит. Таким образом, разработчики могут использовать cap deploy: setup и cap deploy и т. Д., Не затрагивая эти проблемы.
"Значит ли это, что нам нужно вводить команды командной строки или capistrano только после перемещения каталога проекта?"
Я не уверен, что понимаю эту часть вашего вопроса. Если вы переместите каталог проекта, вы все равно сможете выполнять команды capistrano, но вы всегда должны выполнять их из каталога проекта.