如何在OpenShift环境中运行npm模块node-inspector?

我已经通过SSH使这些失败的尝试在OpenShift设备上。

尝试-1:

node-debug app.js Node Inspector v0.12.7 Cannot start the server at 127.0.0.1:8080. Error: listen EACCES. 

尝试-2:

 node-inspector Node Inspector v0.12.7 Cannot start the server at 0.0.0.0:8080. Error: listen EACCES. 

尝试-3:

 node --debug app.js debugger listening on port 5858 Failed to open socket on port 5858, waiting 1000 ms before retrying 

我不知道在OpenShift Node.JS Gear中运行已安装的节点检查器的正确方法是什么。

不知道这是否太晚,或者如果你find了解决办法。

我已经设法在我的本地机器上使用OpenShift'origin'工作。我使用了node4-rhel7映像,因此以下是特定的(即入口点并添加到映像中的/ usr / bin),因此相应地更改它

这里是步骤:

  • 创build或更新一个Dockerfile,为我的节点应用程序提供了正确的权限(rw)
  • 安装node-inspector(npm install node-inspector –save)
  • 添加这个脚本(称之为start.sh – 在一个文件夹的根目录/ usr / bin)也记得设置执行权限

    if [ $# gt 0 ] && [ "$1" == "debug"] then # assume default debug port of 5858 node --debug name-of-startup.js node_modules/node-inspector/bin/inspector.js -p 9000 --save-live-edit=true else node name-of-startup.js fi

  • 在文件夹root / usr / bin中添加一个名为container-entrypoint的脚本

    #!/bin/bash exec "$@"

  • 将此添加到您的Dockerfile

    • ADD根/
    • 入口点[“container-entrypoint”]
    • CMD [“start.sh”]
  • dockerbuild设-t你的图像的名称:版本。

  • oc编辑dc /您的节点pod的名称

  • 在“spec.containers.ports”中添加端口:9000和协议:TCP
  • 在“spec.containers”中添加“command”:[“start.sh”,“debug”]
  • 将图像更新为本地泊坞窗上新build的图像(图像名称:版本)

  • 保存(这将重新部署你的应用程序)并执行'oc get ep'(获取你的应用程序的端点)

  • 用url http:// your-app-endpoint:9000 /?port = 5858打开chrome

  • 你现在可以debugging/设置断点等,并通过铬界面改变代码 – 原始,但像一个魅力:)