如何在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/设置断点等,并通过铬界面改变代码 – 原始,但像一个魅力:)