Не удается запустить определенную версию 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 ответа:
Мне больше нравится эта версия стартового кода 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, которые могут не показывать все выходные данные вашего приложения. Для получения дополнительной информации об отладке можно попробовать запустить приложение вручную:
- сначала остановите приложение из командной строки:
rhc app stop APP_NAME- затем подключитесь к своему приложению gear / container
rhc ssh APP_NAMEcd $OPENSHIFT_REPO_DIR- и вручную выполните любую команду, определенную в атрибуте
scripts.startвашего файлаpackage.json.Надеюсь, это даст вам немного больше видимости того, что происходит.
Вы видели что-нибудь подобное в вашем "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 *Он дает разрешения на выполнение команд, обновляющих версию узла