我正在尝试使用厨师烹饪书git部署rails应用程序。
以下是我用来从github克隆私有repo的代码示例。
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 precompile。
同时启动unicorn web服务器,我也检查了主厨docs的部署资源。
我正在探索其他方法来完成它,
请帮助我
答案 0 :(得分:0)
我最好的方法是使用通知,但它不是坚如磐石(因为任何失败都会涉及修改app目录,以便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 cookbook也有部署前后挂钩和重启命令挂钩,它们(IIRC)可以自动处理故障,如果发生故障,可以在下次运行时重试。
答案 1 :(得分:0)
我选择部署资源或应用程序食谱。在任何一种情况下,bundle install
都会进入你的钩子。我相信部署资源实际上具有precompile_command
的属性。