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

标签 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 中运行已安装的 Node 检查器的正确方法是什么。

最佳答案

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

我已经设法在本地计算机上的 OpenShift“origin”中使其正常工作 我使用了 node4-rhel7 镜像,因此以下内容是特定的(即入口点并添加到镜像中的/usr/bin ),因此请相应地更改它

以下是步骤:-

  • 创建或更新一个 Dockerfile,为我的 Node 应用程序提供正确的权限 (rw)
  • 安装 Node 检查器(npm install node-inspector --save)
  • 添加此脚本(将其称为 start.sh - 在 root/usr/bin 文件夹中)还记得设置执行权限

    if [ $# gt 0 ] && [ "$1"== "调试"] 然后 # 假设默认调试端口为 5858 Node --debug name-of-startup.js node_modules/node-inspector/bin/inspector.js -p 9000 --save-live-edit=true 别的 Node 名称-of-startup.js fi

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

    #!/bin/bash 执行“$@”

  • 将其添加到您的 Dockerfile

    • 添加根目录/
    • ENTRYPOINT [“容器入口点”]
    • CMD [“start.sh”]
  • docker build -t name-of-your-image:version 。

  • oc 编辑 dc/name-of-your-node-pod

  • 在“spec.containers.ports”中添加端口:9000 和协议(protocol):TCP
  • 在“spec.containers”中添加“command”: [“start.sh”,“debug”]
  • 将镜像更新为本地 docker 上新建的镜像(name-of-your-image:version)

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

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

  • 您现在可以调试/设置断点等并通过 chrome 界面更改代码 - 原始但工作起来就像一个魅力:)

关于node.js - 如何在 OpenShift 环境中运行 npm 模块 node-inspector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321471/

相关文章:

node.js - Socket.io授权发送了错误的cookie?

kubernetes - OpenShift edge TLS 终止路由不起作用。 CWWKO0801E : Unable to initialize SSL connection

python - 无法多次运行ansible的k8s模块(非幂等)

node.js - 无法在openshift上部署nodejs套接字io应用程序

javascript - 重新启动 Node 时如何使 Node 检查器重新启动?

node.js - 更改 nodemon 或 mocha 的调试端口

node.js - node-inspector --webhost 不是本地的!它是一个网络应用程序

node.js - 使用基本身份验证重定向到另一个网站(在 Node 中)

javascript - 使用 Netlify 函数加载本地文件

javascript - Node 中的超测自定义 express 服务器