ROR部署:暂存和开发环境

时间:2012-03-13 18:16:03

标签: ruby-on-rails

我已在服务器上部署了生产实例。它运作良好。

这是我需要做的。 在服务器上部署登台和开发环境。 我已经在github中创建了一个分支来做到这一点。

配置 1)Ruby 1.8.6
2)Rails正在出售 3)Webserver Nginx和Thin
4)我已经在/ usr / local / nginx / sites-enabled和sites-available文件夹下创建了一个文件 5)在/ etc / thin下添加了yml文件 6)对deploy.rb进行了编辑,并在config和deploy文件夹下添加了dev.rb 7)Capistrano正在服务器上用于部署

问题: 如何从单独的github分支部署dev环境不同的那个生产?这会重启/影响当前的生产环境吗?

我想确保生产不受此影响。请提供命令列表 或者教程可以帮助我解决这个问题。我正处于学习ROR的早期阶段,所以请你 一点点细节。非常感谢帮助。

修改:
1)通过在本地安装gem并在本地运行capify来获取项目 2)在config
下对deploy.rb进行更改 3)设置:分期和生产的阶段
4)set:default_stage as staging ..您必须更多地编辑此文件以自定义您的部署 5)在config / deploy /下:创建生产和暂存“.rb”文件。将分支设置为主分支或任何特定分支。将rails_env设置为staging.rb中的暂存和production.rb中的生产。 在这些适当的文件中将deploy_to设置为xxxpath / staging和xxxpath / production 6)由于4)
,由于默认情况下,cap deploy将部署在暂存中 7)生产部署生产

1 个答案:

答案 0 :(得分:1)

看起来你大部分都在那里。关键是要确保Capistrano将每个分支部署到文件系统上的一个单独位置 - 站点可用的文档根应该不同(换句话说,不要覆盖生产文件!)。

两种方法,如果您已设置稳定的生产,登台和开发分支,请使用此处记录的方法http://help.github.com/deploy-with-capistrano/

您可以将此方法用于一次性分支部署Using capistrano to deploy from different git branches

Passenger查找文件tmp / restart.txt以了解何时重启;这是在应用程序树下,因此应该只影响站点的特定变体。

根据您的服务器容量,生产站点可能会因重新启动另一个环境而受到短暂的性能影响。如果能够,你应该考虑为staging,test,dev等单独的服务器。