¿Usa Capistrano para implementar (un sitio que no es de Rails) a través de FTP?
-
11-07-2019 - |
Pregunta
¿Cómo haría esto?
Tengo un sitio mayormente estático, que está alojado en un servidor web barato, que solo permite el acceso FTP al alojamiento. El sitio se rastrea en git. Estoy usando OS X.
Me gustaría subir una nueva versión del sitio simplemente haciendo cap deploy
Solución
Utilizamos capistrano para implementar nuestro sitio que está escrito en PHP.
De memoria (no estoy trabajando en este momento) sobrecargamos la implementación y usamos rsync para sincronizar a través de sftp. Algo como esto:
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
Estoy seguro de que podría reemplazar rsync con cualquier programa ftp y debería funcionar bien.
Otros consejos
No lo he probado con capistrano, pero en mis propios scripts de shell, siempre he usado weex
( http://weex.sourceforge.net/ )
para implementar sitios a través de FTP. Imagina que también puedes hackearlo con capistrano.
Mantiene una memoria caché local del estado del servidor FTP para que solo pueda cargar archivos modificados. Esto es bueno, acelera masivamente las cosas ... pero (¿obviamente?), Saldrá mal si su código / otras cosas se cambian por otros medios. Por lo tanto, se puede hacer que no haga esto si es necesario.