2013-06-23 13 views
13

próbuję wdrożyć aplikację kolby Heroku jednak po naciśnięciu kod pojawia się błądWdrażanie kolbę 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 

ja nie jestem pewien, co do próby, próbowałem zmianę portu od 5000 do 33507, ale bezskutecznie. Moja Procfile wygląda następująco:

web: python main.py 

main.py jest główny plik Kolba który inicjuje serwer.

Dzięki.

+0

Czy możesz opublikować plik main.py (z dowolnymi danymi uwierzytelniającymi bazy danych i tym, co usunięte)? –

+0

Czy zaakceptowałbyś @msiemens post jako odpowiedź? –

Odpowiedz

4

Twój skrypt main.py nie może połączyć się z określonym portem, musi powiązać się z numerem portu ustawionym w zmiennej środowiskowej . Heroku ustawia port, który chce w tej zmiennej przed wywołaniem aplikacji.

Błąd, który otrzymujesz sugeruje, że jesteś powiązany z portem, który nie jest tym, którego Heroku spodziewa się.

28

W moim app Kolby hostowane na Heroku, używam tego kodu do uruchomienia serwera:

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) 

Przy opracowywaniu lokalnie, to użyje portu 5000, w produkcji Heroku będzie ustawić zmienną środowiskową PORT.

(uwaga Side: domyślnie Kolba jest dostępny tylko z własnego komputera, a nie z jakiegokolwiek innego w sieci (patrz Quickstart) Ustawianie host='0.0.0.0' uczyni Kolba dostępne w sieci).

+0

Idealne rozwiązanie dla mnie! to działa – rodrigorf

0

Oprócz msiemens „s odpowiedź

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) 

Twój Procfile należy określić numer portu, który w tym przypadku jest przechowywany w zmiennej $ {Heroku PORT}

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

Powiązane problemy