2015-07-10 16 views
9

mi rendo conto in anticipo questo è una specie di una domanda vaga, ma stumped quanto a che cosa altro posso provare qui ...OpenShift: "Impossibile eseguire avvio di controllo" a nodo applicazione

ho state passando attraverso altre domande di SO e seguendo le loro raccomandazioni, ma finora nulla ha ancora risolto il mio problema.

Ecco l'errore specifico che sto ottenendo.

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 

Il mio file package.json è aggiornato farà tutte le mie dipendenze, ha la proprietà scripts: { start: 'node server.js' } eppure sto ancora ricevendo questo errore.

Se I SSH in e andare alla mia directory current/repo ed eseguire node server.js funziona correttamente. Tuttavia, non posso semplicemente usare screen per eseguirlo in background per sempre.

Ho anche provato a fermarmi e riavviarlo, a spingere e a riavviare attraverso il browser. Sono perplesso su cos'altro posso provare a ottenere il mio (molto semplice) applicazione di nodo in esecuzione su OpenShift.

Qualsiasi suggerimento è molto apprezzato.

risposta

13

Per un'app OpenShift Node è necessario specificare lo script iniziale come: main: "server.js" anziché utilizzare scripts. Ciò è dovuto al modo in cui le applicazioni Node vengono avviate su OpenShift usando node-supervisor.

+4

Bene, grazie al tuo commento ho dato una doppia occhiata al mio 'package.json' e invece di un punto nel nome del file sotto' main' avevo una virgola. * facepalm * Grazie! – Scheda

+0

Inoltre, potrebbero esserci alcuni errori di sintassi negli altri file richiesti con l'avvio. Ho avuto un errore in un file secondario e non ho potuto avviare l'app finché non ho risolto l'altro file. – George

12

applicazioni OpenShift Nodo richiedono di dare la configurazione per iniziare la vostra applicazione in package.json sotto principale e scripts.start:

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

Inoltre si richiede anche per dare IP e PORT fornita dall'ambiente del nodo tramite variabili di ambiente:

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

Se queste variabili non utilizzate nella app, mostra l'errore che si presenta come:

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

Ecco un esempio per mostrare come utilizzare queste variabili di ambiente nel nodo di app (da fonte):

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) 
}); 

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

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

+0

Inoltre, non dimenticare di usare {e a} attorno allo json-snippet, altrimenti non verrà compilato. – GlabbichRulz

Problemi correlati