Я запускаю приложение RoR с докку на производство.Команда рейка после развертывания на Dokku
Каков самый простой способ автоматизировать и запустить rake
для очистки кеша после каждого развертывания?
Я запускаю приложение RoR с докку на производство.Команда рейка после развертывания на Dokku
Каков самый простой способ автоматизировать и запустить rake
для очистки кеша после каждого развертывания?
Простейшее будет выполнить команду приведенную ниже
dokku run app_name rake tmp:clear
Сейчас я решил, используя Deploy крючок плагин для Докку: https://github.com/mlomnicki/dokku-deploy-hooks
с установленным плагином, создать файл с именем «развернуть/пост- развернуть "в корневом каталоге приложения. Внутри этого файла просто используйте ранее созданный грабли.
грабли файл:
# 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
Теперь на каждом развернуть реки будут выполнены:
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
Как выполнить на каждое развертывание? – maiconsanson
Если ваше развёртывание вручную, вам может потребоваться просто запустить это вручную. В противном случае добавьте эту строку в конец сценария развертывания. – abhishek77in
@ abhishek77in Я не хочу запускать рейк вручную при каждом развертывании. Мой вопрос в том, где/как поставить команду rake, которая будет выполнена при развертывании? Я развертываю с простым «мастером производства git push». Может быть, добавить некоторые опции докеров? – maiconsanson