Ruby on rails 我能';t运行';第XXX章部署';到远程主机

Ruby on rails 我能';t运行';第XXX章部署';到远程主机,ruby-on-rails,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) ** Execu

我可以通过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
cap演示部署--跟踪
**调用演示(第一次)
**执行演示
**调用加载:默认值(第一次)
**执行加载:默认值
帽子流产了!
NoMethodError:nil:NilClass的未定义方法“gsub”
/Library/Ruby/Gems/2.3.0/Gems/capistrano-3.11.0/lib/capistrano/defaults.rb:2:in'block in'
/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`'
/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层)in'
/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层)in'
/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:在“用调用链调用”中
/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“顶层的块(2层)”中
/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“顶级块”
/Library/Ruby/Gems/2.3.0/Gems/rake-10.4.2/lib/rake/application.rb:115:在“用线程运行”中
/Library/Ruby/Gems/2.3.0/Gems/rake-10.4.2/lib/rake/application.rb:100:in“顶级”
/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:在“标准异常处理”中
/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`'
/usr/local/bin/cap:22:在“装载”中
/usr/local/bin/cap:22:in`'
任务:TOP=>demo

THX祝您度过愉快的一天。

据我所知,通过几分钟的源代码查找,这是由于config/deploy.rb或特定于环境的deploy config文件中缺少
:application
设置造成的

例如,我们仅摘录了以下配置:

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 | | | u key,value |
抛出错误,这表明应用程序为nil-如果值未设置,则将为nil(请参见上面的配置)


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

如下所示?set:application,ENV['application']set:repo_url,ENV['repo_url']set:deploy_to,ENV['deploy_to']set:keep_releases,ENV['keep_releases'].to_iENV在理论上是可行的,但我建议将其作为字符串放在那里,就像我能想到的大多数情况一样,希望在每次部署中都是相同的: