我有一个远程 git 存储库设置,用于在我的团队中进行集中开发。但是,我们部署应用程序的生产服务器目前没有运行 git。我们想使用 capistrano 来部署我们的应用程序,我们如何设置我们的部署配方以在部署时从远程 git 存储库“拉”?
换句话说,我可以做这样的事情吗?
set :repository, "myserver.com/git/#{application}.git"
set :scm, "git"
set :deploy_via, :copy
我有一个远程 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, "git"
set :deploy_via, :copy
有更多关于如何在 Capistrano gem 中设置 git 部署的示例lib/capistrano/recipes/deploy/scm/git.rb
。
当您使用copy
部署策略时,Capistrano 会将您的 git 存储库克隆到/tmp
您的本地计算机上,将结果压缩并压缩,然后通过 sftp 将其传输到服务器。复制策略还支持通过 scp 进行复制,但是如果不稍微修改源代码,就无法告诉它这样做。
你有没有尝试过类似的东西
set :repository, "myserver.com/git/#{application}"
set :scm, :none
set :deploy_via, :copy
我从未尝试过,但这似乎是您需要使用的那种方法。Capistrano RDocs中的更多见解。