在Dokku部署后运行Rake命令

3

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

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

2个回答

2

目前我使用了一个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

0

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

dokku run app_name rake tmp:clear

如何在每次部署时执行? - maiconsanson
如果您的部署是手动的,您可能需要手动运行此命令。否则,请将此行添加到您的部署脚本的末尾。 - abhishek77in
@abhishek77in 我不想在每次部署时手动运行rake。我的问题是在哪里/如何放置一个rake命令,以便在部署时执行?我使用简单的“git push production master”进行部署。也许添加一些docker选项? - maiconsanson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接