Ich versuche, einen Node 6.0 Server zusammen mit mongo 3.2 auf openshift bereitzustellen. Ich habe es geschafft, eine App mit dem Knoten DIY Patrone zu schaffen, wie es hier: http://cartreflect-claytondev.rhcloud.com/reflect?github=connyay/openshift-node-diyOpen shift node + mongodb kann nicht gestartet werden
und auch auf eine Mongo DIY Patrone hinzufügen: https://raw.githubusercontent.com/icflorescu/openshift-cartridge-mongodb/master/metadata/manifest.yml
Außerdem habe ich hinzugefügt .Openshift \ action_hooks Dateien Dieser Aufruf npm als Teil des Build-Skript installieren.
Nun zu dem seltsamen Teil, nach dem Drücken von Änderungen und Abhängigkeit zu beenden Installation bekomme ich die normale Nachricht, die Bereitstellung war erfolgreich. Allerdings gibt mein Server beim Versuch, auf ihn zuzugreifen, 503 Fehler zurück. Ich habe versucht, rhc Schwanz rufen nach unten zu verfolgen, was während der Server-Boot falsch gelaufen ist, aber alles, was ich habe ist dieses Protokoll von mongodb:
2016-08-02T10:24:41.848-0400 I STORAGE [main] Engine custom option: cache_size=256M
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] MongoDB starting : pid=263740 port=27017 dbpath=/var/lib/openshift/57a0601f0c1e66334d000014/app-root/data/.mongodb/data 64-bit host=ex-std-node712.prod.rhcloud.com
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] db version v3.2.7
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] allocator: tcmalloc
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] modules: none
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] build environment:
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] distarch: x86_64
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] target_arch: x86_64
2016-08-02T10:24:41.858-0400 I CONTROL [initandlisten] options: { net: { bindIp: "127.7.166.130", unixDomainSocket: { enabled: false } }, storage: { dbPath: "/var/lib/openshift/57a0601f0c1e66334d000014/app-root/data/.mongodb/data", engine: "wiredTiger", wiredTiger: { engineConfig: { configString: "cache_size=256M" } } }, systemLog: { logAppend: true, logRotate: "reopen", quiet: true } }
2016-08-02T10:24:41.920-0400 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),cache_size=256M
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten]
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten]
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten]
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 350 processes, 1024 files. Number of processes should be at least 512 : 0.5 times number of files.
2016-08-02T10:24:42.466-0400 I CONTROL [initandlisten]
2016-08-02T10:24:42.473-0400 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/openshift/57a0601f0c1e66334d000014/app-root/data/.mongodb/data/diagnostic.data'
2016-08-02T10:24:42.515-0400 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-08-02T10:24:42.521-0400 I NETWORK [initandlisten] waiting for connections on port 27017
dieses Fehlerprotokoll gefolgt (scheinbar durch den Knoten geworfen konnte aber nicht als gefunden werden Datei:
> [email protected] start /var/lib/openshift/57a0601f0c1e66334d000014/app-root/runtime/repo
> NODE_ENV=development;DEBUG=*,-not_this,-morgan;node ./bin/www
Port 8080 is already in use
npm ERR! Linux 2.6.32-573.26.1.el6.x86_64
npm ERR! argv "/var/lib/openshift/57a0601f0c1e66334d000014/node-diy/bin/node/bin/node" "/var/lib/openshift/57a0601f0c1e66334d000014/node-diy/bin/node/bin/npm" "start"
npm ERR! node v5.11.1
npm ERR! npm v3.8.6
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `NODE_ENV=development;DEBUG=*,-not_this,-morgan;node ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script 'NODE_ENV=development;DEBUG=*,-not_this,-morgan;node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the MyApp-API package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! NODE_ENV=development;DEBUG=*,-not_this,-morgan;node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs MyApp-API
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls MyApp-API
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /var/lib/openshift/57a0601f0c1e66334d000014/app-root/runtime/repo/npm-debug.log
, was ich bin hier fehlt es nicht, hier eine wirkliche Fehlermeldung zu sein scheint es sagt nur, dass mein scripts.start Skript fehlschlägt, einige vorgeschlagen, es könnte etwas mit Umgebungsvariablen sein, aber ich bin nicht?. genau sicher, die in der Lage sein könnte, Dinge wie diese zu verkomplizieren
bearbeiten
i sollte auch erwähnen, dass ich mein www app Setup eingestellt haben die Openshift Variablen zu verwenden, wenn verfügbar:
var port = normalizePort(process.env.OPENSHIFT_NODEDIY_PORT || '3000');
app.set('port', port);
var ip = process.env.OPENSHIFT_NODEDIY_IP || localhost; //'192.168.1.16'
app.set('ip', ip);
und der Mongo-Verbindung:
var mongodb_connection_string = 'mongodb://localhost/' + db_name;
//take advantage of openshift env vars when available:
if(process.env.MONGODB_URL){
mongodb_connection_string = process.env.MONGODB_URL + db_name;
}
Edit 2 Ich schließlich gefunden, die Protokolldatei, die den Knoten Fehler speichern ich bekam, scheint es, dass rhc Schwanz nicht die Ful zurückgegeben l staple aber nur die wenigen letzten Zeilen. Das gesamte Protokoll enthüllte tatsächlich weitere Details zu dem Problem (siehe oben bearbeiteter Fehler)
Hört Ihr Knoten die richtige Adresse und den korrekten Port an? Openshift hat einige Umgebungsvariablen, die du verwenden sollst –
@MicheleRicciardi sehe meine obige Bearbeitung, hast du das gemeint? wenn ja als ja –
ja das sind die env-Variablen, über die ich gesprochen habe, nennen Sie auch 'app.listen' mit dem Port und IP? –