gpt4 book ai didi

ruby-on-rails - 带 rails 的 Chef : Handling asset precompiling during deploy

转载 作者:行者123 更新时间:2023-12-04 03:45:59 24 4
gpt4 key购买 nike

如果您将 Rails 与 Sprockets 和 Opscode Chef 结合使用,您将如何在部署期间处理 Assets 预编译?我想保持我的 git 历史干净,所以我不想在本地预编译它们然后将它们提交到存储库。

最简单的方法似乎是将它们添加到应用程序说明书的迁移命令中,但这对我来说似乎很讨厌。 Assets 预编译应该与数据库迁移分开。关于如何处理这个问题还有其他建议吗?

最佳答案

如果您使用的是 deploy_revision 资源,您可以将 rake 任务粘贴到 before_restart block 中进行 Assets 预编译。

这是我的 deploy_revision 资源中的代码片段。因为我使用的是 RVM,所以我安装了 Fletcher Nichol 的惊人 RVM cookbook令人敬畏的。您可以将其替换为 ruby-block 资源。

my gist 中查看更完整的示例.

 app = node[:rails][:app_name]
before_restart do
rvm_shell "assets precompile" do
ruby_string "#{app[:ruby_ver]}@#{app[:gemset]}"
cwd release_path
user app[:deploy_user]
group app[:deploy_user]

# TODO I could not set the environment via the builtin command. Does not look like it is getting passed to popen4
# So instead of `environment "RAILS_ENV" => app[:environment]` I have it in the code block
code %{
export RAILS_ENV=#{app[:environment]}
bundle exec rake assets:precompile
}
end
end

关于ruby-on-rails - 带 rails 的 Chef : Handling asset precompiling during deploy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com