在 CF 中调试 nodejs 应用程序

Debug nodejs app in CF

我按照本指南如何在 CF 中调试 node.js 应用程序,但它目前无法正常工作,

https://medium.com/@KevinHoffman/debugging-node-js-applications-in-cloud-foundry-b8fee5178a09#.ekkzo3f63

我已经安装了节点检查器,我在日志中看到如下消息:

2017-03-23T15:29:21.58+0200 [APP/PROC/WEB/0]ERR Debugger listening on [::]:5858

我执行了 ssh 命令

现在我该怎么办? 在指南中,它在 ssh

之后说了以下内容
  1. export PATH=$PATH:/app/.heroku/node/bin

.heroku 应该是什么?我不在 heroku 运行ning ... 那么我应该提供哪条路径呢?

2.when我运行下面的命令在/app/node_modules/.bin

./node-inspector --web-port=9090

**我收到错误:** /usr/bin/env: 节点: 没有那个文件或目录 任何的想法 ?估计跟第一期有关...

我们正在开发 CF 2.74 版

我建议阅读 Bluemix documentation on Application Management 的这篇文章。它包含 LibertyNode.js 应用程序部分。对于 Node.js,它解释了如何启用检查器。

具体问题:您要查找的node可执行文件在/app/vendor/node/bin下。所以命令是:

export PATH=$PATH:/app/vendor/node/bin

来自文档...

If you want the environment of your interactive SSH session to match the environment of your buildpack-based app, with the same environment variables and working directory, run the following commands after starting the session:

export HOME=/home/vcap/app
export TMPDIR=/home/vcap/tmp
cd /home/vcap/app
[ -d /home/vcap/app/.profile.d ] && for f in /home/vcap/app/.profile.d/*.sh; do source "$f"; done
source /home/vcap/app/.profile

https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html#ssh-env

虽然这些说明是通用的,但对于 Node.js 构建包,您可以简单地 运行 HOME=/home/vcap/app source $HOME/app/.profile.d/nodejs.sh 因为只有一个文件可以从构建包中获取。然后可选地获取 .profile,如果您的应用程序有一个并且您需要/想要包含它。

此外,正如文档所述,您应该在 运行 之前查看所有 .profile.profile.d/*.sh 脚本,以确保没有意外的副作用。

更新:

一个更简单的方法是 运行 cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''"。这将打开一个 bash shell 并让生命周期启动器处理采购和设置环境。