2013-06-23 15 views
13

Ich versuche aber eine Flasche App Heroku bereitstellen auf den Code drängen ich den FehlerBereitstellen Flasche mit Heroku

2013-06-23T11:23:59.264600+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

ich, was bin nicht sicher, um zu versuchen, ich habe versucht, den Port zu ändern von 5000 bis 33507, aber ohne Erfolg. Mein procfile sieht wie folgt aus:

web: python main.py 

main.py die Haupt Flask-Datei ist, die den Server initiiert.

Danke.

+0

Können Sie Ihre main.py (mit allen Anmeldeinformationen der Datenbank und was nicht entfernt) –

+0

Posted Akzeptieren Sie @msiemens Beitrag als die Antwort? –

Antwort

4

Ihr main.py-Skript kann nicht an einen bestimmten Anschluss gebunden werden. Es muss an die in der Umgebungsvariable $PORT festgelegte Anschlussnummer gebunden werden. Heroku legt den gewünschten Port in dieser Variablen fest, bevor er Ihre Anwendung aufruft.

Der Fehler, den Sie bekommen, deutet darauf hin, dass Sie an einen Port gebunden sind, der nicht der ist, den Heroku erwartet.

28

In meinem Flask App auf Heroku gehostet, verwende ich diesen Code auf den Server zu starten:

if __name__ == '__main__': 
    # Bind to PORT if defined, otherwise default to 5000. 
    port = int(os.environ.get('PORT', 5000)) 
    app.run(host='0.0.0.0', port=port) 

Bei der lokalen Entwicklung dieser Port 5000 verwenden, in der Produktion wird eingestellt Heroku die PORT Umgebungsvariable.

(Randbemerkung: In der Standardeinstellung ist Flask nur zugänglich von Ihrem eigenen Computer, nicht von jedem anderen im Netzwerk (siehe Quickstart) Einstellung host='0.0.0.0' wird Flask aus dem Netz zur Verfügung stellen.)

+0

Perfekte Lösung für mich! Es klappt – rodrigorf

0

Neben msiemens ‚s Antwort

import os 
from run import app as application 
if __name__ == '__main__': 
    port = int(os.environ.get('PORT', 5000)) 
    application.run(host='0.0.0.0', port=port) 

Ihre procfile sollte die Portadresse angeben, die in diesem Fall in der variablen $ Heroku Umgebung gespeichert {PORT}

web: gunicorn --bind 0.0.0.0:${PORT} wsgi

Verwandte Themen