Ruby的Elastic Beanstalk迁移失败

时间:2015-05-17 19:06:37

标签: ruby-on-rails ruby amazon-web-services elastic-beanstalk

网站上的错误消息

An unhandled lowlevel error occured. The application logs may have details.

退出放置

=== puma startup: 2015-05-17 16:26:01 +0000 ===
=== puma startup: 2015-05-17 16:26:01 +0000 ===
[3112] - Worker 0 (pid: 3150) booted, phase: 0
2015-05-17 17:31:54 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:31:54 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:35:47 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:35:47 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call

但我不相信secret_key_base丢失了。我用实际生产密钥切换了ENV [:secret_key_base]。如果我去我的secret.yml文件,它是纯文本。

我有运行nginx和puma。

可能的错误可能是因为生产的secret_key_base与部署的不同?我部署后,我做了一个耙秘密。我将尝试删除该实例并重做它。也许这将解决问题。

我感谢任何其他建议

1 个答案:

答案 0 :(得分:0)

secrets.yml未上传到服务器。您需要在Elastic Beanstalk控制台中设置秘密。

转到环境,然后在侧栏中选择Configuration,选择Software Configuration旁边的齿轮图标,然后在列表底部添加您的密钥,大概是secret_key_base,点击+然后选择Apply,您的环境应该更新。

我建议您在添加密钥后重新启动。如有必要,请重新部署最新版本,并且应该成功迁移。

旁注(关于调试器): 您可以通过SSH连接到服务器来获取rails控制台。

  1. 从您的Rails项目目录中执行eb ssh
  2. 执行sudo su -以获得root访问权限。
  3. 执行cd /var/app/current进入Rails项目目录。
  4. 执行bundle exec rails consolerails c(取决于版本)以获取Rails控制台。