【问题标题】:Rake command after deploy on Dokku在 Dokku 上部署后的 Rake 命令
【发布时间】:2015-07-28 23:42:48
【问题描述】:

我正在生产中使用 dokku 运行 RoR 应用程序。

每次部署后自动化和运行rake 以清除我的缓存的最简单方法是什么?

【问题讨论】:

    标签: ruby-on-rails deployment dokku


    【解决方案1】:

    现在我使用 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
    

    【讨论】:

      【解决方案2】:

      最简单的方法是运行下面提供的命令

      dokku run app_name rake tmp:clear
      

      【讨论】:

      • 如何在每次部署时执行?
      • 如果您的部署是手动的,您可能必须手动运行它。否则,将此行添加到部署脚本的末尾。
      • @abhishek77in 我不想在每次部署时手动运行 rake。我的问题是在哪里/如何放置将在部署时执行的 rake 命令?我正在使用一个简单的“git push production master”进行部署。也许添加一些 docker 选项?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多