2015-07-10 9 views
9

ich im Voraus erkennen, diese Art von einer vagen Frage ist, aber ich bin ratlos, was sonst kann ich hier versuchen ...Openshift: „Fehler zu Beginn der Steuerung ausführen“ auf Knoten-Anwendung

Ich habe Ich habe andere SO-Fragen durchgezogen und ihre Empfehlungen befolgt, aber bis jetzt hat noch nichts mein Problem gelöst.

Hier ist der spezifische Fehler, den ich bekomme.

Stopping NodeJS cartridge 
Fri Jul 10 2015 10:36:28 GMT-0400 (EDT): Stopping application 'appname' ... 
Fri Jul 10 2015 10:36:29 GMT-0400 (EDT): Stopped Node application 'appname' 

Starting NodeJS cartridge 
Fri Jul 10 2015 10:36:30 GMT-0400 (EDT): Starting application 'appname' ... 

Waiting for application port (8080) become available ... 

Application 'appname' failed to start (port 8080 not available) 

Failed to execute: 'control restart' for /var/lib/openshift/MYID/nodejs 

Meine package.json-Datei ist auf dem neuesten Stand werden alle meine Abhängigkeiten, die scripts: { start: 'node server.js' } Eigenschaft hat und doch bin ich immer noch diesen Fehler.

Wenn ich SSH in und gehen Sie zu meinem current/repo Verzeichnis und führen Sie node server.js es funktioniert gut. Allerdings kann ich nicht einfach screen verwenden, um es für immer im Hintergrund laufen zu lassen.

Ich habe auch versucht zu stoppen und neu zu starten, git Push und Neustart über den Browser. Ich bin ratlos, was ich sonst noch versuchen kann, um meine (sehr einfache) Knoten-Anwendung auf OpenShift laufen zu lassen.

Alle Vorschläge werden sehr geschätzt.

Antwort

13

Für eine OpenShift Node-Anwendung müssen Sie das Startskript wie folgt angeben: main: "server.js" anstelle von scripts. Dies ist auf die Art und Weise zurückzuführen, wie Knotenanwendungen unter OpenShift mit node-supervisor gestartet werden.

+4

Nun, dank deines Kommentars habe ich meinen 'package.json' doppelt angesehen und statt eines Punktes im Dateinamen unter' main' ein Komma. * facepalm * Danke! – Scheda

+0

Außerdem könnte ein Syntaxfehler in anderen Dateien auftreten, die beim Start benötigt werden. Ich hatte einen Fehler in einer Unterdatei und konnte die App nicht starten, bis ich die andere Datei repariert habe. – George

12

Openshift Knoten Anwendungen Sie benötigen die Konfiguration zu starten Ihre Anwendung in package.json unter Haupt und scripts.start zu geben:

"scripts": { 
    "start": "node server.js" 
    }, 
"main": "server.js" 

Des weiteren verfügt es auch zu geben erfordert IP und PORT wird von Ihrer Knotenumgebung über Umgebungsvariablen bereitgestellt:

for PORT Number  process.env.OPENSHIFT_NODEJS_PORT 
for IP    process.env.OPENSHIFT_NODEJS_IP 

Wenn diese Variablen nicht in App verwendet wird, zeigt es Fehler, die wie folgt aussehen:

Waiting for application port (8080) become available ... 
Application 'appname' failed to start (port 8080 not available) 

Hier ein Beispiel zu zeigen, wie diese Umgebungsvariablen in Ihrem Knoten App verwenden (von der Quelle):

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080 
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1' 

server.listen(server_port, server_ip_address, function() { 
console.log("Listening on " + server_ip_address + ", server_port " + port) 
}); 

Quelle: https://blog.openshift.com/run-your-nodejs-projects-on-openshift-in-two-simple-steps/

Related Post: Application 'appname' failed to start (port 8080 not available) on open shift node app

+0

Vergessen Sie auch nicht, ein {und ein} um das JSON-Snippet zu verwenden, sonst wird es nicht kompiliert. – GlabbichRulz

Verwandte Themen