我正在使用capistrano 3.我的rails 4.0应用程序中没有tmp / restart.txt文件。当我部署我的应用程序时,收到此错误:
WARN [SKIPPING] No Matching Host for /usr/bin/env touch /srv/yenta/releases/20140411230746/tmp/restart.txt
在部署的服务器中,应用程序没有tmp / restart.txt。我想知道我是否应该明确地创建一个任务,或者我是否缺少capistrano中的任何设置。在capistrano 2中,我创建了一个任务来显式触摸tmp / restart.txt文件。
感谢任何帮助!
答案 0 :(得分:0)
您在touch
文件夹中尝试releases
- 您需要在current
文件夹中进行此操作。
是的,没有tmp/restart.txt
。我被告知你必须创建它,但我们正在使用的乘客版本(4)似乎只是重新启动应用程序?
答案 1 :(得分:0)
此错误通常意味着它无法找到任何匹配的主机来执行此任务。
你重新开始乘客的任务是什么?您为此任务指定了哪些角色?
如果您可以在这里提供重启任务代码,那将会有所帮助。
供参考,请查看此博客,了解如何设置更新当前文件夹的重启任务:http://robmclarty.com/blog/how-to-deploy-a-rails-4-app-with-git-and-capistrano
请看第4步。
答案 2 :(得分:0)
此问题源于未定义特定角色 - 代码使用:app角色而未定义该角色,这导致主机未找到问题。
deploy.rb
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
execute :touch, current_path.join('tmp/restart.txt')
end
end
部署/ staging.rb
role :web, "qa4-yenta"
set :deploy_to, "/srv/yenta"
set :rails_env, "staging"
set :user, "yenta"
set :use_sudo, false
set :branch, "staging"
set :deploy_via, :remote_cache
:app
角色需要更改为:web
,或者需要定义:app
角色。