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

时间:2016-03-30 23:21:31

标签: node.js openshift 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中运行已安装的节点检查器的正确方法是什么。

1 个答案:

答案 0 :(得分:2)

不确定这是否太晚,或者您是否找到了解决方案。

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

以下是步骤: -

  • 创建或更新为我的节点应用程序提供正确权限(rw)的Dockerfile
  • 安装node-inspector(npm install node-inspector --save)
  • 添加此脚本(称之为start.sh - 在文件夹root / 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

    • 添加root /
    • ENTRYPOINT [" container-entrypoint"]
    • CMD [" start.sh"]
  • docker build -t name-of-your-image:version。

  • oc edit dc / name-of-node-pod

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

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

  • 使用网址http://your-app-endpoint:9000/?port=5858

  • 打开Chrome
  • 你现在可以调试/设置断点等,并通过chrome界面更改代码 - 原始但是就像魅力一样:)