Я запускаю приложение RoR с dokku на производстве.
Как проще всего автоматизировать и запустить rake
для очистки кэша после каждого развертывания?
Я запускаю приложение RoR с dokku на производстве.
Как проще всего автоматизировать и запустить rake
для очистки кэша после каждого развертывания?
На данный момент я решил использовать подключаемый модуль развертывания для Dokku: https://github.com/mlomnicki/dokku-deploy-hooks
С установленным плагином создайте файл с именем «deploy/post-deploy» в корне приложения. Внутри этого файла просто используйте ранее созданный грабли.
файл рейка:
# 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