我正在使用dokku在生产环境中运行RoR应用程序。
最简单的自动化并在每次部署后运行rake
清除缓存的方法是什么?
我正在使用dokku在生产环境中运行RoR应用程序。
最简单的自动化并在每次部署后运行rake
清除缓存的方法是什么?
目前我使用了一个Dokku的部署钩子插件来解决问题:https://github.com/mlomnicki/dokku-deploy-hooks
安装完插件后,在应用的根目录下创建一个名为“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