我在我的application.yml(figaro管理env变量)中设置端口为3000
rails使用端口3000
但是当我运行工头开始(按照Heroku的推荐),我得到以下输出
rails使用端口3000
但是当我运行工头开始(按照Heroku的推荐),我得到以下输出
14:53:23 web.1 | started with pid 24425 14:53:23 web.1 | [24425] Puma starting in cluster mode... 14:53:23 web.1 | [24425] * Version 2.11.1 (ruby 2.2.0-p0),codename: Intrepid Squirrel 14:53:23 web.1 | [24425] * Min threads: 5,max threads: 5 14:53:23 web.1 | [24425] * Environment: development 14:53:23 web.1 | [24425] * Process workers: 2 14:53:23 web.1 | [24425] * preloading application 14:53:24 web.1 | WARNING: Skipping key "PORT". Already set in ENV. 14:53:25 web.1 | [24425] * Listening on tcp://0.0.0.0:5000 14:53:25 web.1 | [24425] Use Ctrl-C to stop 14:53:25 web.1 | [24425] - Worker 0 (pid: 24426) booted,phase: 0 14:53:25 web.1 | [24425] - Worker 1 (pid: 24427) booted,phase: 0
web: bundle exec puma -C config/puma.rb
配置/ 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
配置/ application.yml
PORT: "3000"
> Rails 4.2.0
>工头0.78.0
> Ruby 2.2.0p0
>美洲狮2.11.1
解决方法
美洲狮港的神秘解决了.
把这个打印放在你的config / puma.rb中
那么你会看到,不管怎样,这个端口是神秘地设置为5000,即使它不在你的ENV.
固定在底部.
puma_port = ENV['PORT'] || 3000 puts "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" puts "puma_port is #{puma_port}" puts "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ”
打印出来
16:49:28 web.1 | ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 16:49:28 web.1 | puma_port is 5000 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
然后把这行放在你的procfile中(而不是用于Heroku的).我有一个叫procfile.dev
web: PORT=3000 bundle exec puma -C config/puma.rb
我用这个命令运行它:
foreman start -f procfile.dev