分期与Capistrano的现场应用(staging and live app with capis

2019-07-29 11:45发布

我想我做了一个简单但可能是非常有用的东西,并创建一个名为现场另一个符号链接,它指向一个任意的发布,并在头离开当前的地方通常是:

20120519235508 
20120521004833 
20120521024312 <-- live
20120521025150 
20120521030449 <-- current 

然后我配置www.mysite.com打

live/public 

和stage.mysite.com打

current/public

不幸的是这两个主机似乎运行相同的应用程序,而不是2个不同的应用程序。 我已经证实了httpd.conf具有正确的设置,并重新启动它。 但是没有任何变化,他们都仍然在运行相同的应用程序,通过电流/公共引用的应用程序要准确。

我不知道如果我有一个设置错了,或者别的东西需要重新启动,或者如果这是我想象根本无法正常工作。 我使用的是乘客。

有人可以揭示出这个问题的一些光,因为这个配置是非常有用的,我的很多项目。

Answer 1:

而不是创建在版本目录中的其他符号链接的话,建议使用多级扩展。 有了这个扩展可以定义不同的阶段,并添加自定义配置给他们。 因此,而不是使用一个部署目录两种分期和生产,使用相互独立的。

添加这些行deploy.rb:

require "capistrano/ext/multistage"

set :stages, ["staging", "production"]
set :default_stage, "staging"

从deploy.rb取出deploy_to变量。 然后创建内部配置一个deploy目录具有与艺名文件。 在这种情况下:部署/ staging.rb和部署/ production.rb。 staging.rb的内容:

set :rails_env, "staging"
set :deploy_to, "staging/capistrano"

同样地,对于production.rb:

set :rails_env, "production"
set :deploy_to, "production/capistrano"

当然,改变deploy_to的路径。 然后点staging.example.com以staging/capistrano/current/public和www.example.com到production/capistrano/current/public

要做到分段部署,执行cap staging deploy或简单cap deploy (记住,分期设置deploy.rb默认)和cap production deploy到部署到生产环境。



文章来源: staging and live app with capistrano