Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails localhost+;赫罗库美洲狮配置_Ruby On Rails_Heroku_Configuration_Localhost_Puma - Fatal编程技术网

Ruby on rails rails localhost+;赫罗库美洲狮配置

Ruby on rails rails localhost+;赫罗库美洲狮配置,ruby-on-rails,heroku,configuration,localhost,puma,Ruby On Rails,Heroku,Configuration,Localhost,Puma,我在heroku上部署了一个带有puma的rails应用程序。一切似乎都很好,除非我在dev env中启动我的应用程序,端口是5000而不是3000 为什么会这样?根据我的配置文件,它应该回落到3000,就像线程数和并发数一样(这些工作正常) Procfile.dev web: bundle exec puma -C config/puma.rb config/puma.rb workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count

我在heroku上部署了一个带有puma的rails应用程序。一切似乎都很好,除非我在dev env中启动我的应用程序,端口是5000而不是3000

为什么会这样?根据我的配置文件,它应该回落到3000,就像线程数和并发数一样(这些工作正常)

Procfile.dev

web: bundle exec puma -C config/puma.rb
config/puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  ActiveRecord::Base.establish_connection
end
使用
foreman start-f Procfile.dev启动服务器后

12:36:51 web.1     | [12816] Puma starting in cluster mode...
12:36:51 web.1     | [12816] * Version 2.13.4 (ruby 2.2.3-p173), codename: A Midsummer Code's Dream
12:36:51 web.1     | [12816] * Min threads: 5, max threads: 5
12:36:51 web.1     | [12816] * Environment: development
12:36:51 web.1     | [12816] * Process workers: 2
12:36:51 web.1     | [12816] * Preloading application
12:37:08 web.1     | [12816] * Listening on tcp://0.0.0.0:5000
12:37:08 web.1     | [12816] ! WARNING: Detected 1 Thread(s) started in app boot:
12:37:08 web.1     | [12816] ! #<Rack::MiniProfiler::FileStore::CacheCleanupThread:0x007f860f8fa628@/Users/Silo/.rvm/gems/ruby-2.2.3/gems/rack-mini-profiler-0.9.8/lib/mini_profiler/storage/file_store.rb:53 sleep> - /Users/Silo/.rvm/gems/ruby-2.2.3/gems/rack-mini-profiler-0.9.8/lib/mini_profiler/storage/file_store.rb:71:in `sleep'
12:37:08 web.1     | [12816] Use Ctrl-C to stop
12:37:08 web.1     | [12816] - Worker 0 (pid: 12822) booted, phase: 0
12:37:08 web.1     | [12816] - Worker 1 (pid: 12823) booted, phase: 0
12:36:51 web.1 |[12816]Puma以群集模式启动。。。
12:36:51 web.1 |[12816]*版本2.13.4(ruby 2.2.3-p173),代码名:仲夏代码之梦
12:36:51 web.1 |[12816]*最小线程数:5,最大线程数:5
12:36:51 web.1 |[12816]*环境:发展
12:36:51 web.1 |[12816]*工艺工人:2
12:36:51 web.1 |[12816]*预加载应用程序
12:37:08网页1 |[12816]*收听tcp://0.0.0.0:5000
12:37:08网络1 |[12816]!警告:检测到1个线程在应用程序启动中启动:
12:37:08网页1 |[12816]!#/Users/Silo/.rvm/gems/ruby-2.2.3/gems/rack-mini-profiler-0.9.8/lib/mini_-profiler/storage/file_-store.rb:71:在“睡眠”中
12:37:08 web.1 |[12816]使用Ctrl-C停止
12:37:08 web.1 |[12816]-工作进程0(pid:12822)已启动,阶段:0
12:37:08 web.1 |[12816]-工作进程1(pid:12823)已启动,阶段:0

至于原因,foreman将$PORT传递给您的流程,默认设置为5000。因此,在config/puma.rb中忽略端口3000。请参阅此线程的末尾

现在,有几种方法可以解决这个问题。例如,您可以按如下方式启动foreman:foreman s-p 3000。这是我的首选解决方案,因为它不涉及为开发创建特定的procfile,也不涉及添加到.env文件(PORT=3000),也不涉及创建.foreman文件(PORT:3000)


如果您真的想使用您的开发过程文件,请将其更改如下:
web:PORT=3000 bundle exec puma-C config/puma.rb

至于为什么,foreman会将$PORT传递给您的进程,默认情况下设置为5000。因此,在config/puma.rb中忽略端口3000。请参阅此线程的末尾

现在,有几种方法可以解决这个问题。例如,您可以按如下方式启动foreman:foreman s-p 3000。这是我的首选解决方案,因为它不涉及为开发创建特定的procfile,也不涉及添加到.env文件(PORT=3000),也不涉及创建.foreman文件(PORT:3000)

如果您确实想使用您的开发过程文件,请按如下方式更改它:
web:PORT=3000 bundle exec puma-C config/puma.rb