Не удается запустить определенную версию node на openshift


Я следую шагам, описанным вэтом репозитории, но я не могу заставить его работать. Когда я заглядываю в свойenv файл, версия nodejs остается .6.20

Мой файл версии JS узла является файлом по умолчанию, поэтому версия узла .8.9 должен быть запущен. Есть идеи, почему это происходит?

Мой файл маркера:

0.8.9

Вывод отладки при попытке запуска приложения

==> nodejs/logs/node.log <==

npm ERR! node -v v0.6.20
npm ERR! npm -v 1.1.37
npm ERR! code ELIFECYCLE
npm ERR! message application-name@0.0.1 start: `node server.js`
npm ERR! message `sh "-c" "node server.js"` failed with 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /var/lib/openshift/51ba8386e0b8cd2873000002/app-root/runtime/repo/npm-        debug.log
npm ERR! not ok code undefined
npm ERR! not ok code 1

Просто для полноты картины. Мой пакет.формат JSON файл

{

"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node server.js"
 },

"dependencies": {

    "express": "3.2.5",
    "mustache": "*",
    "request" : "*",
"buildify":"*",
"cheerio" : "*",
"slugs" : "*",
"to-markdown":"*",
"consolidate":"*"
  }
}

Приложение работает локально просто отлично.

4 2

4 ответа:

Мне больше нравится эта версия стартового кода nodejs: https://github.com/ryanj/nodejs-custom-version-openshift

Он содержит более новую версию .openshift приложения build hooks для nodejs. Он будет читать файл маркера, но также имеет поддержку чтения непосредственно из атрибута package.json вашего файла engines для компиляции среды выполнения Nodejs.

"engines": {
  "node": ">= 0.10.0",
  "npm": ">= 1.0.0"
},

Я надеюсь получить это объединенное в как содержимое папки по умолчанию .openshift для всех приложений nodejs на OpenShift.

Вы также захотите убедиться, что вы привязаны к новый переменные окружения: OPENSHIFT_NODEJS_IP и OPENSHIFT_NODEJS_PORT. Они были недавно переименованы.

Обычно я добавляю что-то вроде этого в свой код приложения, позволяя ему работать в любом месте:

var ip_addr = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var port = process.env.OPENSHIFT_NODEJS_PORT || '8080';

OpenShift в настоящее время показывает Вам выходные данные из npm start, которые могут не показывать все выходные данные вашего приложения. Для получения дополнительной информации об отладке можно попробовать запустить приложение вручную:

  1. сначала остановите приложение из командной строки: rhc app stop APP_NAME
  2. затем подключитесь к своему приложению gear / container rhc ssh APP_NAME
  3. cd $OPENSHIFT_REPO_DIR
  4. и вручную выполните любую команду, определенную в атрибуте scripts.start вашего файла package.json.

Надеюсь, это даст вам немного больше видимости того, что происходит.

Может быть, это поможет. Есть тонкие различия. Смотрите также комментарии.

Https://www.openshift.com/blogs/any-version-of-nodejs-you-want-in-the-cloud-openshift-does-it-paas-style

Вы видели что-нибудь подобное в вашем "git push" выходе?

remote:   - Checking to see if Node.js version 0.8.9 is installed ... 
remote:   - Downloading and extracting http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz ... 
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote: 100 4578k  100 4578k    0     0  31.4M      0 --:--:-- --:--:-- --:--:-- 33.8M

И ближе к нижней части дна, что-то вроде:

remote:   - Using Node.js version 0.8.9, checking app URI ... 
remote:   - test URI = http://mynode-sannam.rhcloud.com/env
remote:   - Version from test URI = 
remote: 
remote:   - Checking to see if Node.js version 0.8.9 is installed ... 

Я попробовал те же инструкции, и это, кажется, сработало. Проверьте мой env здесь: http://mynode-sannam.rhcloud.com/env

Пожалуйста, повторите ваши шаги еще раз.

У меня была та же проблема, и в начале я не смог решить ее, используя исходный код из https://github.com/ryanj/nodejs-custom-version-openshift , но читая вывод push, я заметил некоторые проблемы с разрешением. Поэтому для других людей, которые имеют ту же проблему, просто войдите в:

cd .openshift\action_hooks

И выполните следующую команду:

git update-index --chmod=+x *

Он дает разрешения на выполнение команд, обновляющих версию узла