2016-08-02 6 views
0

私はmongo 3.2と一緒にNode 6.0サーバーをopensshiftにデプロイしようとしています。 私はここに見られるようなノードDIYカートリッジを使用してアプリケーションを作成するために管理してきました:http://cartreflect-claytondev.rhcloud.com/reflect?github=connyay/openshift-node-diyオープンシフトノード+ mongodb cant start

と同様にそれにモンゴDIYカートリッジを追加します。またhttps://raw.githubusercontent.com/icflorescu/openshift-cartridge-mongodb/master/metadata/manifest.yml

私は.Openshift \ファイルをaction_hooks追加しましたビルドスクリプトの一部としてnpm installを呼び出します。

変更と依存関係が終了すると、インストールが正常に完了したという通常のメッセージが表示されます。しかし私のサーバーは、アクセスしようとすると503エラーを返し続けます。私は、サーバーの起動時に何が悪かったのか追跡するRHCテールを呼び出そうとしましたが、私が得たすべては、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 

があるかのように見つかりませんでしたファイル:?

> [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 

私はここで何をしないのですがいけないが、ここで任意の実際のエラーメッセージのようだそれはちょうど私のscripts.startスクリプトが失敗していると言う、いくつかは、それが環境変数で何かあるかもしれない示唆したが、イムありません。このようなものを混乱させる可能性があるのは確かです。

編集

私はまた、私は利用可能openshift変数を使用するには、私のWWWアプリのセットアップを設定したことを言及する必要があります:

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

とモンゴ接続:

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

編集2 私は最終的に私が得ていたノードエラーを格納するログファイルを見つけることができました。それは、rhc tailがfulを返さなかったようですlのスタックがいくつかの最後の行だけです。ログ全体が実際に問題の詳細を明らかにしました(上記のエラーの編集を参照)

+0

は正しいアドレスとポートでリッスンしているノードですか? Openshiftには、あなたが使用しようとしているいくつかの環境変数があります。 –

+0

@MicheleRicciardi上記の私の編集をご覧ください。もしそうであれば、 –

+0

はい、それらは私が話していたenv変数です、あなたはまた 'app.listen'をポートとIPで呼んでいますか? –

答えて

0

私は最終的に何が間違っているかを考え出しました。

私のWWWスクリプトがこれを持っていたので、私のIDEで作成されたデフォルトのノードプロジェクトは、(現在はwebstorm)、IPに関係なく、ポートをリッスンするように設定されたようです:最後の行で

var port = normalizePort(process.env.OPENSHIFT_NODEDIY_PORT || '3000'); 
app.set('port', port); 

var ip = process.env.OPENSHIFT_NODEDIY_IP || localhost; 
app.set('ip', ip); 

/** 
* Create HTTP server. 
*/ 

var server = http.createServer(app); 

/** 
* Listen on provided port, on all network interfaces. 
*/ 

server.listen(port); 

ので、あなたはちょうどポートを聞いて、ipを無視して、最後の行を

server.listen(port, ip); 

に変更していることがわかります。