使用capistrano部署远程git repo但没有在生产服务器上运行git
我有一个远程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
还有更多关于如何在lib/capistrano/recipes/deploy/scm/git.rb
下的Capistrano gem中设置git部署的lib/capistrano/recipes/deploy/scm/git.rb
。
使用copy
部署策略时会发生的事情是Capistrano将您的git repo克隆到本地计算机上的/tmp
,对结果进行tars&zips,然后通过sftp将其传输到服务器。 复制策略也支持通过scp进行复制,但是如果不在源代码中进行黑客攻击,就没有办法告诉它这样做。
你尝试过类似的东西吗?
set :repository, "myserver.com/git/#{application}" set :scm, :none set :deploy_via, :copy
我从来没有试过这个,但这似乎是你需要使用的那种方法。 更多关于Capistrano RDocs的见解 。
- 有没有办法使用capistrano(或类似)远程与rails控制台交互
- 如何在capistrano部署后检测孤立的sidekiq进程?
- Capistrano抛出/ usr / bin / env:ruby:执行deploy:migration时没有这样的文件或目录
- Capistrano无法创建符号链接:文件存在
- Capistrano和GitHub Private Repo – 许可被拒绝(公钥)
- 为什么我在capistrano生成的文件部署中获得Permission denied错误?
- 我如何使用冷冻Capistrano第2部分?
- 切换到Capistrano后,Passenger上的Rails应用程序上的Bundler :: GemfileError
- 使用Capistrano开始后台任务