2016-09-27 3 views
0

Openshiftは、最新のnode.jsカートリッジを使用して、Openshift UIを通じてnode.jsアプリケーションを作成できません。これは、次のエラーで作成に失敗します。node.js最新のカートリッジを作成する際にエラーが発生する

Starting Node.js application... The initial build for the application failed: Shell command '/sbin/runuser -s /bin/sh 57eae88f7628e1677c000077 -c "exec /usr/bin/runcon 'unconfined_u:system_r:openshift_t:s0:c4,c966' /bin/sh -c \"gear postreceive --init >> /tmp/initial-build.log 2>&1\""' returned an error. rc=255

とログの尾は言う:

Preparing build for deployment

Deployment id is b941b282

Activating deployment

Git Post-Receive Result: failure

Activation status: failure

Activation failed for the following gears:

57eae88f7628e1677c000077 (Error activating gear: CLIENT_ERROR: Failed to execute: 'control start' for

/var/lib/openshift/57eae88f7628e1677c000077/nodejs

Deployment completed with status: failure

post receive failed

私はこれをデバッグする方法は考えています。私はpackage.jsonを持っています、それは私のapp.jsを指す "メイン"を持っていて、私のapp.jsは環境変数を使ってip/portを設定しています。通常はnpm install && npm startでローカルで動作します。これは、ノード0.10カートリッジを使用して動作するアプリでした。

答えて

0

を見てだから私はこれを考え出した、と私は他の誰がそれ横切る場合の解決策を提供しようと思いました。したがって、Openshiftサイトの最新のカートリッジはコミュニティで提供されているので、通常のノード-0.10カートリッジとはいくつかの重要な違いがあります。それはあなたのアプリケーションが見る、200 OKを返すGET /healthエンドポイントを公開することが必要です

  1. https://github.com/icflorescu/openshift-cartridge-nodejs/blob/master/usr/template/app.js#L14私はに走ったことを特に三つのこと。

  2. ipとportに異なる環境変数、NODE_IPNODE_PORTを使用します。私は決して戻ってきていないので、通常のオープンシフト環境変数も機能するかどうかはわかりません。しかし、サンプルテンプレートは、少なくとも代替環境変数を使用しています。 https://github.com/icflorescu/openshift-cartridge-nodejs/blob/master/usr/template/app.js#L41を参照してください。

  3. package.jsonに開始スクリプトがありますが、実際にはnpm startを実行していないので、そのスクリプトをエミュレートしています。したがって、npm startコマンドで作業することが期待されるものは、ここでは機能しません。たとえば、npm startで実行しても、カスタム制御スクリプトを実行しても動作しない場合は、を参照してください。NODE_ENV=development node app.jsという起動コマンドがありました。

0

ノード6.6と0.10は大きな違いです。最新のノードや、新しい 'カートリッジ'が使用しているノードをローカルに処理する必要があります。

はまた、そのbuild.logに

+0

6.6で動作します。決して作成されないコンテナのログを取得するにはどうすればよいですか? – Kevin

+0

ノード・スクリプト自体とbash、zsh、fishな​​どのシェルを実行するのではなく、ノード環境と同じようにコンテナを起動する方法があります。次に、ノード・プロセスを自分でリモートで開始します。https://docs.openshift .com/enterprise/3.1/dev_guide/ssh_environment.html –

関連する問題