【发布时间】:2015-10-04 18:26:28
【问题描述】:
我正在使用 AWS OpsWorks 部署 Rails 应用程序。为了预编译资产,我使用了以下 Chef 配方:
node[:deploy].each do |application, deploy|
deploy_to = node[:deploy][application][:deploy_to]
rails_env = node[:deploy][application][:rails_env]
directory "#{deploy_to}/shared/assets"
link "#{deploy_to}/current/public/assets" do
to "#{deploy_to}/shared/assets"
end
execute "rake assets:precompile" do
cwd "#{deploy_to}/current"
command "bundle exec rake assets:precompile"
environment "RAILS_ENV" => rails_env
end
end
它可以正确预编译,但在后续部署中,它会再次经历整个预编译过程,即使没有修改任何资产并且资产文件夹是共享的。我还按照here 的建议尝试了一个厨师钩子,结果相同。你怎么能让它只在需要的时候运行呢?
【问题讨论】:
标签: ruby-on-rails deployment chef-infra aws-opsworks