2014-11-21 97 views
0

我想部署使用厨师食谱的rails应用程序,git使用厨师食谱的Rails应用程序部署

下面是我用来从github克隆私人回购的代码示例。

git "/var/www/hello_app" do 
    repository "git://github.com/MyUser/MyProject.git" 
    reference "master" 
    action "sync" 
    user "gituser" 
end 

我关心的是如何运行bundle update/bundle install和rake预编译。

也启动独角兽的web服务器,我也检查了厨师文档的部署资源。

我正在探索其他的方式来完成它,

好心帮我出

回答

0

我最好的获取是使用通知,但它不是坚如磐石(如任何故障将涉及修改应用程序dir让git资源在下次运行时更新)。

类似:

execute "bundle_install" do 
cwd "/var/www/hello_app" 
command "bundle install" 
action :nothing #To avoid executing at each run 
end 

git [....] do 
[...] 
notifies :run,"execute[bundle_install]", :immediately 
end 

,分别执行可依次通知另外一个和最后一个能通知服务,以重新启动为例。

您可能更喜欢application cookbook和application_ruby(请参阅链接中的自述文件)。

Thoose Cookbooks具有事先和事后部署挂钩和重新启动命令挂钩,他们是(IIRC)弹性恢复步骤失败,并可能在下次运行时重试,如果一个失败。

0

我会去部署资源或应用程序食谱。无论哪种情况,bundle install都会进入您的挂钩。我相信部署资源实际上具有precompile_command的属性。