【发布时间】:2015-07-28 23:42:48
【问题描述】:
我正在生产中使用 dokku 运行 RoR 应用程序。
在每次部署后自动化和运行rake 以清除我的缓存的最简单方法是什么?
【问题讨论】:
标签: ruby-on-rails deployment dokku
我正在生产中使用 dokku 运行 RoR 应用程序。
在每次部署后自动化和运行rake 以清除我的缓存的最简单方法是什么?
【问题讨论】:
标签: ruby-on-rails deployment dokku
现在我使用 Dokku 的部署挂钩插件解决了问题:https://github.com/mlomnicki/dokku-deploy-hooks
使用已安装的插件,在 app 的根目录下创建一个名为“deploy/post-deploy”的文件。在这个文件中,只需使用之前创建的 rake。
rake 文件:
# lib/tasks/clear-cache.rake
namespace :cache do
desc 'Clear all Cache'
task clear: :environment do
Rails.cache.clear
puts "=========== > ALL CACHES WERE GONE!"
end
end
部署后文件:
# deploy/post-deploy
rake cache:clear
现在在每次部署时都会执行 rake:
web| [12] * Preloading application
worker| Cache clear: flushing all keys
worker| Dalli::Server#connect
worker| =========== > ALL CACHES WERE GONE!
web| [12] * Listening on tcp://0.0.0.0:5000
【讨论】:
最简单的方法是运行下面提供的命令
dokku run app_name rake tmp:clear
【讨论】: