1

我已经设置 Capistrano 在生产服务器上部署我的 Rails 应用程序,这工作正常。

我现在需要能够在开发服务器上部署相同的应用程序。为此,我在 config.deploy.rb 中创建了 2 个任务:

desc "Run on development server" 
task :dev do 
  server "development_server", :web, :app, :db, :primary => true
end 

desc "Run on production server" 
task :production do 
  server "production_server", :web, :app, :db, :primary => true
end

这样做,要在 dev 上执行部署,我需要使用:

帽开发部署

但是,我没有设法告诉 Capitrano 在正确的环境上运行捆绑包,它使用“--without development test”选项,而我需要“--without test production”

failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.3' -c 'cd /var/be/releases/20120824155742 && bundle install --gemfile /var/be/releases/20120824155742/Gemfile --path /var/be/shared/bundle --deployment --quiet --without development test'" on 192.168.1.10

知道如何执行此操作吗?

另外,我如何有选择地在开发或生产环境中开始精简?我是否需要为每个任务创建一个任务,或者有什么特殊的方法可以做到这一点?

4

1 回答 1

4

最好的方法是使用 Capistrano Multistage 扩展。这个 Wiki会比我如何使用它解释得更好。我唯一遇到的小问题是:require 'capistrano/ext/multistage'不需要require 'capistrano'

于 2012-08-24T17:03:16.023 回答