在CF中调试nodejs app

时间:2017-03-23 13:50:37

标签: node.js ssh ibm-cloud cloudfoundry pivotal-cloud-foundry

我按照本指南如何在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
  2. 应该是什么.heroku?我没有在heroku中运行...... 那么我应该提供哪条路径?

    2.当我在/app/node_modules/.bin

    中运行以下命令时
    ./node-inspector --web-port=9090
    

    **我收到错误:** / usr / bin / env:node:没有这样的文件或目录 任何的想法 ?我想这与第一期有关......

    我们正在研究CF版本2.74

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

来自文档...

  

如果您希望交互式SSH会话的环境与基于buildpack的应用程序的环境匹配,并且具有相同的环境变量和工作目录,请在启动会话后运行以下命令:

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,它让生命周期启动器处理来源和建立环境。