在 CF 中调试 nodejs 应用程序
Debug nodejs app in CF
我按照本指南如何在 CF 中调试 node.js 应用程序,但它目前无法正常工作,
我已经安装了节点检查器,我在日志中看到如下消息:
2017-03-23T15:29:21.58+0200 [APP/PROC/WEB/0]ERR Debugger listening on [::]:5858
我执行了 ssh 命令
现在我该怎么办?
在指南中,它在 ssh
之后说了以下内容
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 的这篇文章。它包含 Liberty
和 Node.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 并让生命周期启动器处理采购和设置环境。
我按照本指南如何在 CF 中调试 node.js 应用程序,但它目前无法正常工作,
我已经安装了节点检查器,我在日志中看到如下消息:
2017-03-23T15:29:21.58+0200 [APP/PROC/WEB/0]ERR Debugger listening on [::]:5858
我执行了 ssh 命令
现在我该怎么办? 在指南中,它在 ssh
之后说了以下内容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 的这篇文章。它包含 Liberty
和 Node.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 并让生命周期启动器处理采购和设置环境。