[英]Rails: Can't start the rails console in production
我目前在 Ubuntu 18.04 生产服务器上运行的应用程序上使用Rails 5.2.3和Ruby 2.5.0 ,但是当我运行命令时
rails c --environment=production
命令终端卡住了,我必须同时按住 Ctrl + C 键来中止该过程。
但是,它输出以下错误:
^CTraceback (most recent call last):
16: from bin/rails:3:in `<main>'
15: from bin/rails:3:in `load'
14: from /home/deploy/myapp/bin/spring:15:in `<top (required)>'
13: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:72:in `require'
12: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:72:in `require'
11: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
10: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
9: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
8: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
7: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
6: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/rails.rb:24:in `call'
5: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
4: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/run.rb:35:in `call'
3: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/run.rb:42:in `warm_run'
2: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/run.rb:62:in `run'
1: from /home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/run.rb:117:in `verify_server_version'
/home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/spring-2.0.2/lib/spring/client/run.rb:117:in `gets': Interrupt
我已经尝试了一些解决方案,但目前似乎没有一个解决方案,我将不胜感激。
此问题与在后台预加载rails应用程序的spring gem有关,但不建议在生产环境中运行它
这是我解决问题的方法:
我安装/重新安装了spring gem:
gem install spring
然后我启动了(从中删除了spring gem) bin/
可执行文件:
bin/spring binstub --remove --all
或者
spring binstub --remove --all
您现在可以运行以下命令以进入生产环境中的 rails 控制台
rails c --environment=production
此外,为了避免在随后的情况下发生这种情况,请努力确保spring gem 仅出现在您的 Gemfile 中的development
和test
组中。
此外,当您在生产中时,请确保始终向bundle install
命令提供--without development test
参数
bundle install --without development test
而不是通常的或常见的
bundle install
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.