Команда Rake после развертывания на Dokku

Я запускаю приложение RoR с dokku на производстве.

Как проще всего автоматизировать и запустить rake для очистки кэша после каждого развертывания?


person maiconsanson    schedule 28.07.2015    source источник


Ответы (2)


На данный момент я решил использовать подключаемый модуль развертывания для 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
person maiconsanson    schedule 30.07.2015

Проще всего запустить команду, приведенную ниже.

dokku run app_name rake tmp:clear
person coderhs    schedule 28.07.2015
comment
Как выполнять при каждом развертывании? - person maiconsanson; 29.07.2015
comment
Если ваше развертывание выполняется вручную, вам, возможно, придется просто запустить это вручную. В противном случае добавьте эту строку в конец сценария развертывания. - person abhishek77in; 29.07.2015
comment
@abhishek77in abhishek77in Я не хочу запускать грабли вручную при каждом развертывании. Мой вопрос: где/как поместить команду rake, которая будет выполняться при развертывании? Я развертываю с помощью простого мастер-производителя git push. Может быть, добавить некоторые параметры докера? - person maiconsanson; 29.07.2015