【问题标题】:Rails application does not get restarted automatically after deployment through Capistrano 3.x通过 Capistrano 3.x 部署后,Rails 应用程序不会自动重新启动
【发布时间】:2014-05-10 10:34:33
【问题描述】:

我按照Capistrano 上的说明设置部署配置,我现在可以将 git 中的代码部署到我的 Web 服务器。但是由于 tmp 文件夹不在 git 存储库中,Capistrano 似乎无法重新启动我的 Ruby-On-Rails 应用程序(通过触摸 tmp/restart.txt,这需要 tmp 文件夹存在)。

我该怎么办?我应该将 tmp 文件夹添加到 git repo 中吗?或者如果 Capistrano 不存在这个文件夹,有什么方法可以创建它?

解决方案

Rake::Task["deploy:restart"].clear_actions
namespace :deploy do
  task :restart do
    on roles(:web) do |host|
      execute "mkdir -p #{fetch(:deploy_to)}/current/tmp"
      info "create folder #{fetch(:deploy_to)}/current/tmp"
      execute "touch #{fetch(:deploy_to)}/current/tmp/restart.txt"
    end
  end
end

【问题讨论】:

    标签: ruby-on-rails-4 capistrano


    【解决方案1】:

    通过使用 capistrano,你可以在服务器上运行任何你想要的东西

    task :execute_on_server do
      on "root@example.com" do
        execute "some_command"
      end
    end
    

    除此之外,您通常会将.keep 文件放在一个必要但您不想跟踪的目录中。因此,当您签出应用程序时,该文件夹存在但“空”。

    【讨论】:

    • 我用执行命令创建了 tmp 文件夹,通过重新定义 deploy:restart 任务
    猜你喜欢
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多