2017-01-12 2 views
1

Ich habe eine NodeJs-Anwendung auf Heroku bereitgestellt.Foreman ignoriert Standardport in .foreman-Datei

Da ich zu verschiedenen Procfile in Produktion und Entwicklung ausführen muss, habe ich Foreman für Knoten (https://www.npmjs.com/package/foreman) installiert.

Danach habe ich meine .env Datei und .foreman Datei und meine zwei procfile: Profil und Procfile.dev

den Befehl Ausführen des Server

nf start -f Procfile.dev 

wirft den folgenden Fehler zu starten:

Error: listen EADDRINUSE Procfile.dev 

das, weil Foreman ist standardmäßig wählen Sie den Port 5000. Also ich diesen Code in der .foreman Datei eingefügt:

Das Problem ist, dass Option weiterhin ignoriert wird und ich weiterhin den EADDRINUSE-Fehler erhalte Selbst Ausführung des Befehls:

nf start -p 3003 -f Procfile.dev 

alles lösen, der Port wird immer noch ignoriert.

Auf der anderen Seite, wenn ich Befehl ohne das Flag -f ausführen, wird die Option port nicht ignoriert.

Wie kann ich das lösen?

Antwort

-1

Auf Heroku können Sie nicht angeben, an welchen Port Sie binden möchten - Heroku wird Ihnen mitteilen, welchen Port Sie verwenden können.

Heroku erstellt eine Umgebungsvariable für Sie namens PORT.

Damit der Webserver funktioniert, muss der Vorarbeiter den Webserver an dem in der Umgebungsvariablen PORT angegebenen Port starten.