我的目標是看看我是否錯過了將一個小型Sinatra應用程序部署到Heroku並診斷出現端口錯誤的原因。Heroku上的Sinatra應用程序的不良綁定
我正在向Heroku部署一個相當簡單的應用程序。應用程序代碼是在這裏:
https://github.com/jnyman/symbiont-app
應用程序本身是:
http://symbiont-app.herokuapp.com/
這是一個非常簡單的測試應用程序。但是,當我部署到Heroku時,出現應用程序錯誤。在日誌中報告的錯誤是:
Error R11 (Bad bind) -> Process bound to port 3000, should be 49668 (see environment variable PORT)
heroku[web.1]: Process exited with status 137
heroku[web.1]: State changed from starting to crashed
這是我在我的Procfile:
web: bundle exec rackup config.ru -p $PORT
我從我的調查是不具有「-p $ PORT」是理解我所看到的錯誤的最可能原因。但我顯然已經有了這條線。此外,一切都在本地環境中正常工作,當我運行:
bundle exec rackup config.ru
我可以測試我的應用程序沒有問題。當我使用時也是如此:
foreman start
此外,應用程序工作得很好。我用標準命令部署到heroku:
git push heroku master
在這個過程中沒有錯誤。更新的最後部分是:
-----> Discovering process types
Procfile declares types -> web
Default types for Ruby/Rack -> console, rake
-----> Compiled slug size: 15.7MB
-----> Launching... done, v12
http://symbiont-app.herokuapp.com deployed to Heroku
因此,在本地工作;在部署到Heroku時只有一個錯誤。唯一的錯誤似乎是關於一個端口。我無法找到的很多信息可以幫助我弄清楚如何診斷我所看到的。我覺得我可能會在這個端口問題上漏掉一些明顯的東西,但我不知道那是什麼。
任何幫助,將不勝感激。
我不知道是否適合給我這樣的問題添加評論,但我確實注意到了一些問題。在回到Heroku中的日誌中,似乎端口總是嘗試使用3000.我在整個應用程序中搜索,並且沒有任何地方可以指定該數字。 –