我无法将“ cap XXX deploy”运行到远程主机

时间:2018-08-28 14:11:55

标签: ruby-on-rails

我可以SSH登录到我的AWS主机,但是当我想使用Capistrano将某些内容部署到远程主机时,它说

NoMethodError: undefined method `gsub' for nil:NilClass

ruby​​版本:ruby 2.3.3p222(2016-11-21修订版56859)[universal.x86_64-darwin17]

这是我的错误日志跟踪记录:

cap demo deploy --trace

** Invoke demo (first_time)
** Execute demo
** Invoke load:defaults (first_time)
** Execute load:defaults
cap aborted!
NoMethodError: undefined method `gsub' for nil:NilClass
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/defaults.rb:2:in `block in <top (required)>'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/validated_variables.rb:89:in `block in assert_valid_now'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/validated_variables.rb:88:in `each'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/validated_variables.rb:88:in `assert_valid_now'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/validated_variables.rb:44:in `set'
config/deploy.rb:1:in `<top (required)>'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `load'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `block (3 levels) in <top (required)>'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/variables.rb:32:in `untrusted!'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/delegate.rb:83:in `method_missing'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:26:in `block (2 levels) in <top (required)>'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Library/Ruby/Gems/2.3.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/application.rb:14:in `run'
/Library/Ruby/Gems/2.3.0/gems/capistrano-3.11.0/bin/cap:3:in `<top (required)>'
/usr/local/bin/cap:22:in `load'
/usr/local/bin/cap:22:in `<main>'
Tasks: TOP => demo

THX祝你有美好的一天。

1 个答案:

答案 0 :(得分:0)

据我所知,从查看源代码的几分钟来看,这是由于config / deploy.rb或特定于环境的deploy-config文件中缺少:application设置。 / p>

例如,我们仅摘录了config:

set :application, 'myappname'
set :repo_url, 'git@github.com:org/app.git'
set :deploy_via, :remote_cache

# Default branch is :master
set :branch, :master

从capistrano中的validate :application do |_key, value|引发了错误,这表明应用程序为nil-如果未设置该值,应用程序将为零(请参见上面的配置)。

您可以验证是否在配置中设置了:application吗?