Использование Capistrano для развертывания (сайта, отличного от Rails) через FTP?
-
11-07-2019 - |
Вопрос
Как бы мне это сделать?
У меня есть в основном статический сайт, который размещен на дешевом веб-хостинге, который разрешает доступ к хостингу только по FTP.Сайт отслеживается в git.Я использую OS X.
Я хотел бы загрузить новую версию сайта, просто выполнив cap deploy
Решение
Мы используем 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, и она должна работать нормально.
Другие советы
Я не пробовал это с capistrano, но в своих сценариях оболочки я всегда использовал weex
(http://weex.sourceforge.net/)
для развертывания сайтов через FTP.Представьте, что вы могли бы взломать это и с помощью capistrano.
Он сохраняет локальный кеш состояния FTP-сервера, поэтому может загружать только измененные файлы.Это хорошо, значительно ускоряет работу...но (очевидно?) все пойдет не так, если ваш код/другие материалы будут изменены каким-либо другим способом.Так что при необходимости можно сделать так, чтобы этого не делать.