Использование Capistrano для развертывания (сайт без Rails) через FTP?
Как я могу это сделать?
У меня есть в основном статический сайт, который размещается на дешевом веб-хосте, который разрешает FTP-доступ к хостингу. Сайт отслеживается в git. Я использую OS X.
Я хотел бы загрузить новую версию сайта, просто сделав cap deploy
Ответы
Ответ 1
Мы используем capistrano для развертывания нашего сайта, который написан на PHP.
Из памяти (сейчас я не работаю) мы перегружаем развертывание и используем rsync для синхронизации по sftp. Что-то вроде этого:
desc "Sync"
namespace :deploy do
desc "Sync remote by default"
task :default do
remote.default
end
namespace :remote do
desc "Sync to remote server"
task :default do
`rsync -avz "/path/to/webapp" "#{remote_host}:#{remote_root}/path/to/webapp"`
end
end
end
Я уверен, что вы могли бы заменить rsync любой программой ftp, и она должна работать нормально.
Ответ 2
Я не пробовал это с помощью capistrano, но в моих собственных сценариях оболочки я всегда использовал weex
(http://weex.sourceforge.net/)
для развертывания сайтов по FTP. Представьте, что вы тоже могли бы взломать его с помощью capistrano.
Он хранит локальный кеш состояния FTP-сервера, чтобы он мог загружать только измененные файлы. Это хорошо, значительно ускоряет работу... но (очевидно?), Это пойдет не так, если ваш код/другой материал изменится с помощью других средств. Таким образом, это может быть сделано, чтобы не делать этого, если это необходимо.