ruby-on-rails – 使用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,:copy

还有更多的例子,说明如何在lib/capistrano/recipes/deploy/scm/git.rb下的Capistrano宝石中设置git部署.

当您使用复制部署策略时会发生什么情况,即Capistrano将您的git repo克隆到本地计算机上的/ tmp,tars&拉出结果,然后通过sftp将其传输到服务器.复制策略还支持通过scp进行复制,但没有办法告诉它这样做,而不是在源代码中进行黑客攻击.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...