通过Capistrano 3.x部署后,Rails应用程序不会自动重新启动

时间:2014-05-10 10:34:33

标签: ruby-on-rails-4 capistrano

我按照Capistrano上的说明设置部署配置,我现在可以将代码部署到我的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

1 个答案:

答案 0 :(得分:1)

通过使用capistrano,您可以在服务器上运行任何您想要的内容

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

除此之外,您通常会将.keep文件放在必要的目录中,但不希望以其他方式跟踪。所以当你签出应用程序时,文件夹就在那里,但是“空”。

相关问题