zoukankan      html  css  js  c++  java
  • 在openshift上自定义node.js的版本

    https://github.com/ramr/nodejs-custom-version-openshift

    由于是线上服务器,一步一步来:

    先把上面的工程拉下来,覆盖到初始化的工程里,提交,让服务器端装起来。

    #  Uncomment one of the version lines to select the node version to use.
    #  The last "non-blank" version line is the one picked up by the code in
    #  .openshift/lib/utils
    #  Default: 0.10.25
    #
    #  0.8.24
    #  0.9.1
    #  0.10.25
    #  0.11.11
    #  0.12.2
    #  0.12.5
    4.2.3

    配置好.openshift/markers/NODEJS_VERSION  (默认写的4.2.3, 我改的6.9.2)

    如果失败了,找到最初commit id 用reset --hard HEAD~1 一版一版往前退,

    然后pull 返回去初始状态,否则错上推错很有可能会出现被服务器永久拒绝的状态(哭),那就只能重新建应用了
    还没commit的直接 checkout --force 就放弃修改了

    一堆无关痛痒的依赖错误之后是:

    那么会不会是503呢,它没有明显的deploy failure,说是node启动失败

    看看dashboard 状态

    只要不是一直被stopped就还有希望 

    页面并没有受到影响,仍然显示默认的index.html

    在dashboard点restart,重启之后页面仍然正常显示,猜想服务器终于把node给升级好啦?

    (尝试了一次不点restrt, 跑去网上冲浪不知等了多久也自动能stated) 页面改头换面了:

    把package.json里面scripts、dependencies、devDependencies加进去

    再次push应该会看到这样

    明显的node已经升级成功,但是dashboard上仍然显示0.10

    然后我有一个用了webpack的工程需要移植上去,

    根据stackoverflow这篇文章,需要设置.openshift中的action_hook下build文件:

    create the following file: .openshift/action_hook/build which contains the following:

    #!/bin/bash
    webpack --config $OPENSHIFT_DATA_DIR/webpack.config.js

    题主出现了报错,但我是一次成功的。。。

    另外,如果出现这种问题像我之前查到的解决方式一样需要配置静态地址:

    self.initializeServer = function() {
            self.createRoutes();
            self.app = express();
            self.app.use('/', express.static(__dirname + '/dist'));
            //  Add handlers for the app (from the routes).
            for (var r in self.routes) {
                self.app.get(r, self.routes[r]);
            }
        };

    还有上面一段populate the cache也需要设置

         /**
         *  Populate the cache.
         */
        self.populateCache = function() {
            if (typeof self.zcache === "undefined") {
                self.zcache = { 'index.html': '' };
            }
         //  Local cache for static content.
       //原来openshift给的index.html
        //self.zcache['index.html'] = fs.readFileSync('./index.html');
            self.zcache['index.html'] = fs.readFileSync('./dist/index.html');
        };

    这样就和本地启动一样了,本地npm start还是可以指定其他的入口文件进行本地启动,并不会冲突。

    $ git push
    Counting objects: 35, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (35/35), done.
    Writing objects: 100% (35/35), 43.95 KiB | 0 bytes/s, done.
    Total 35 (delta 13), reused 0 (delta 0)
    remote:
    remote:   - pre_stop_nodejs: Adding Node.js version 6.9.2 binaries to path
    remote:   - PATH set to include custom node version (6.9.2) from
    remote:        /var/lib/openshift/585cd49089f5cf3e75000095/app-root/data//node-v6.9.2-linux-x64/bin
    remote:     PATH = /var/lib/openshift/585cd49089f5cf3e75000095/app-root/data//node-v6.9.2-linux-x64/bin:/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/.bin:/var/lib/openshift/585cd49089f5cf3e75000095//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/bin:/usr/bin:/usr/sbin
    remote: Stopping NodeJS cartridge
    remote: Tue Dec 27 2016 03:15:41 GMT-0500 (EST): Stopping application 'angular' ...
    remote: Tue Dec 27 2016 03:15:42 GMT-0500 (EST): Stopped Node application 'angular'
    remote: Repairing links for 1 deployments
    remote: Saving away previously installed Node modules
    remote: Building git ref 'master', commit d3e7fb0
    remote: NOTE: The .openshift/action_hooks/pre_build hook is not executable, to make it executable:
    remote:       On Windows run:   git update-index --chmod=+x .openshift/action_hooks/pre_build
    remote:       On Linux/OSX run: chmod +x .openshift/action_hooks/pre_build
    remote: Building NodeJS cartridge
    remote: npm info it worked if it ends with ok
    remote: npm info using npm@2.14.13
    remote: npm info using node@v0.10.35
    remote: npm info preinstall nodejs-Custom-Version-Sample@1.0.1
    remote: npm info package.json core-js@2.4.1 No README data
    remote: npm info package.json ts-loader@0.8.2 No README data
    remote: npm info package.json @angular/compiler@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/common@2.0.0-rc.6 No description
    remote: npm info package.json @angular/common@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/compiler-cli@0.6.0 No README data
    remote: npm info package.json @angular/core@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/forms@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/http@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/platform-browser@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/platform-browser-dynamic@2.0.0-rc.6 No README data
    remote: npm info package.json @angular/router@3.0.0-rc.2 No README data
    remote: npm info package.json @angular/upgrade@2.0.0-rc.6 No description
    remote: npm info package.json @angular/upgrade@2.0.0-rc.6 No README data
    remote: npm info package.json echarts@3.3.2 No license field.
    remote: npm info package.json raw-loader@0.5.1 No license field.
    remote: npm info build /var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo
    remote: npm info linkStuff nodejs-Custom-Version-Sample@1.0.1
    remote: npm info install nodejs-Custom-Version-Sample@1.0.1
    remote: npm info postinstall nodejs-Custom-Version-Sample@1.0.1
    remote:
    remote: > nodejs-Custom-Version-Sample@1.0.1 postinstall /var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo
    remote: > typings install
    remote:
    remote:
    remote: Error: EACCES, permission denied '/var/lib/openshift/585cd49089f5cf3e75000095/.config'
    remote:     at Object.fs.mkdirSync (fs.js:654:18)
    remote:     at sync (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/node_modules/mkdirp/index.js:71:13)
    remote:     at Function.sync (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/node_modules/mkdirp/index.js:77:24)
    remote:     at Object.create.all.get (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/node_modules/configstore/index.js:39:13)
    remote:     at Object.Configstore (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/node_modules/configstore/index.js:28:44)
    remote:     at Object.<anonymous> (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/dist/utils/store.js:5:19)
    remote:     at Module._compile (module.js:456:26)
    remote:     at Object.Module._extensions..js (module.js:474:10)
    remote:     at Module.load (module.js:356:32)
    remote:     at Function.Module._load (module.js:312:12)
    remote:     at Module.require (module.js:364:17)
    remote:     at require (module.js:380:17)
    remote:     at Object.<anonymous> (/var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/node_modules/typings/node_modules/typings-core/dist/utils/fs.js:29:15)
    remote:     at Module._compile (module.js:456:26)
    remote:     at Object.Module._extensions..js (module.js:474:10)
    remote:     at Module.load (module.js:356:32)
    remote:
    remote: npm info nodejs-Custom-Version-Sample@1.0.1 Failed to exec postinstall script
    remote: npm ERR! Linux 2.6.32-642.6.2.el6.x86_64
    remote: npm ERR! argv "node" "/opt/rh/nodejs010/root/usr/bin/npm" "install" "-d
    remote: npm ERR! node v0.10.35
    remote: npm ERR! npm  v2.14.13
    remote: npm ERR! code ELIFECYCLE
    remote: npm ERR! nodejs-Custom-Version-Sample@1.0.1 postinstall: `typings install`
    remote: npm ERR! Exit status 8
    remote: npm ERR!
    remote: npm ERR! Failed at the nodejs-Custom-Version-Sample@1.0.1 postinstall script 'typings install'.
    remote: npm ERR! This is most likely a problem with the nodejs-Custom-Version-Sample package,
    remote: npm ERR! not with npm itself.
    remote: npm ERR! Tell the author that this fails on your system:
    remote: npm ERR!     typings install
    remote: npm ERR! You can get their info via:
    remote: npm ERR!     npm owner ls nodejs-Custom-Version-Sample
    remote: npm ERR! There is likely additional logging output above.
    remote:
    remote: npm ERR! Please include the following file with any support request:
    remote: npm ERR!     /var/lib/openshift/585cd49089f5cf3e75000095/app-root/runtime/repo/npm-debug.log
    remote: An error occurred executing 'gear postreceive' (exit code: 1)
    remote: Error message: CLIENT_ERROR: Failed to execute: 'control build' for /var/lib/openshift/585cd49089f5cf3e75000095/nodejs
    remote:
    remote: For more details about the problem, try running the command again with the '--trace' option.
    To ssh://xxx.rhcloud.com/~/git/angular.git/
       bf853eb..d3e7fb0  master -> master

    每次push完也没法直接看到页面,总是会进入building,等它打包完自动started就好了。

  • 相关阅读:
    验证码图片识别
    DataSnap下的分包获取
    uniGUI试用笔记(十)
    EControl的安装
    Cesium应用篇:3控件(6) FullScreen/ VR / Home
    Cesium应用篇:3控件(5)CesiumInspector
    Cesium应用篇:3控件(4)Geocoder
    Cesium应用篇:3控件(3)SelectionIndicator& InfoBox
    Cesium应用篇:3控件(2)BaseLayerPicker
    Cesium应用篇:3控件(1)Clock
  • 原文地址:https://www.cnblogs.com/haimingpro/p/6182347.html
Copyright © 2011-2022 走看看