Issue
I wanted to deploy my plotly dashboard on Heroku, however upon running I keep getting information that the Port [PORT_NUMBER] is already in use. The port number is given by Heroku itself and changes everytime I restart the app. I tried setting up an app with a fixed port however it just stated that the given port is also 'in use by another program'. There are a few issues regarding something similar but they all pertain deploymend of node.js app and seemed to have been resolved by using a solution specific to node.js deployement.
Since I tried to locate the problem, I reduced my main module to minimal working example in app.py file:
from dash import Dash, html
app = Dash(__name__)
server = app.server
app.layout = html.Div("TESTING")
app.run_server(debug=False)
Procfile defined as follows:
web: gunicorn app:server
And here is the log from the running server I keep getting:
2022-06-05T15:38:23.696572+00:00 app[web.1]: * Serving Flask app 'app' (lazy loading)
2022-06-05T15:38:23.696693+00:00 app[web.1]: * Environment: production
2022-06-05T15:38:23.696830+00:00 app[web.1]: WARNING: This is a development server. Do not use it in a production deployment.
2022-06-05T15:38:23.696863+00:00 app[web.1]: Use a production WSGI server instead.
2022-06-05T15:38:23.696883+00:00 app[web.1]: * Debug mode: off
2022-06-05T15:38:23.702649+00:00 app[web.1]: Address already in use
2022-06-05T15:38:23.702652+00:00 app[web.1]: Port 45013 is in use by another program. Either identify and stop that program, or start the server with a different port.
2022-06-05T15:38:23.702869+00:00 app[web.1]: [2022-06-05 15:38:23 +0000] [489] [INFO] Worker exiting (pid: 489)
2022-06-05T15:38:23.850179+00:00 app[web.1]: [2022-06-05 15:38:23 +0000] [491] [INFO] Booting worker with pid: 491
2022-06-05T15:38:24.280232+00:00 app[web.1]: Dash is running on http://127.0.0.1:45013/
2022-06-05T15:38:24.280241+00:00 app[web.1]:
2022-06-05T15:38:24.280618+00:00 app[web.1]: * Serving Flask app 'app' (lazy loading)
2022-06-05T15:38:24.284103+00:00 app[web.1]: * Environment: production
2022-06-05T15:38:24.284156+00:00 app[web.1]: WARNING: This is a development server. Do not use it in a production deployment.
2022-06-05T15:38:24.284186+00:00 app[web.1]: Use a production WSGI server instead.
2022-06-05T15:38:24.284209+00:00 app[web.1]: * Debug mode: off
2022-06-05T15:38:24.295838+00:00 app[web.1]: Address already in use
2022-06-05T15:38:24.295891+00:00 app[web.1]: Port 45013 is in use by another program. Either identify and stop that program, or start the server with a different port.
2022-06-05T15:38:24.296221+00:00 app[web.1]: [2022-06-05 15:38:24 +0000] [490] [INFO] Worker exiting (pid: 490)
2022-06-05T15:38:24.702612+00:00 app[web.1]: [2022-06-05 15:38:24 +0000] [492] [INFO] Booting worker with pid: 492
2022-06-05T15:38:24.826989+00:00 app[web.1]: Dash is running on http://127.0.0.1:45013/
2022-06-05T15:38:24.826991+00:00 app[web.1]:
2022-06-05T15:38:24.827286+00:00 app[web.1]: * Serving Flask app 'app' (lazy loading)
2022-06-05T15:38:24.832077+00:00 app[web.1]: * Environment: production
2022-06-05T15:38:24.832127+00:00 app[web.1]: WARNING: This is a development server. Do not use it in a production deployment.
2022-06-05T15:38:24.832158+00:00 app[web.1]: Use a production WSGI server instead.
2022-06-05T15:38:24.832182+00:00 app[web.1]: * Debug mode: off
2022-06-05T15:38:24.834227+00:00 app[web.1]: Address already in use
2022-06-05T15:38:24.834256+00:00 app[web.1]: Port 45013 is in use by another program. Either identify and stop that program, or start the server with a different port.
2022-06-05T15:38:24.834479+00:00 app[web.1]: [2022-06-05 15:38:24 +0000] [491] [INFO] Worker exiting (pid: 491)
2022-06-05T15:38:25.150842+00:00 app[web.1]: [2022-06-05 15:38:25 +0000] [493] [INFO] Booting worker with pid: 493
It just keeps starting up and failing due to busy port.
What am I doing wrong?
Edit
Redeploying app from scratch solved the issue.
Solution
If the port is changing and the result keep being the same. There is following ways to try:
- Verify that you are not running several servers on one port. For example, in your running configuration you are starting your server directly AND also using
gunicorn
simultaneously. - Try to redeploy the app from scratch. (Maybe it's some strange Heroku bug triggered on this specific deployment.)
Answered By - Nick Veld
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.