我有一个远程git存储库设置,用于集中开发我的团队.但是,我们部署我们的应用程序的生产服务器当前没有运行git.我们想使用capistrano部署我们的应用程序,我们如何设置我们的部署配方,以便在部署时从远程git仓库“拉”?
换句话说,我可以这样做吗?
set :repository,"myserver.com/git/#{application}.git" set :scm,"git" set :deploy_via,:copy
解决方法
你的问题的解决方案是接近正确的.不过,您需要指定您的git仓库有所不同.你需要的是:
set :repository,"someuser@somehost:/home/myproject" set :scm,:copy
还有更多的例子,说明如何在lib/capistrano/recipes/deploy/scm/git.rb
下的Capistrano宝石中设置git部署.
当您使用复制部署策略时会发生什么情况,即Capistrano将您的git repo克隆到本地计算机上的/ tmp,tars&拉出结果,然后通过sftp将其传输到服务器.复制策略还支持通过scp进行复制,但没有办法告诉它这样做,而不是在源代码中进行黑客攻击.