2017-03-23 2 views
0

Ich folge dieser Anleitung, wie node.js Anwendung in CF zu debuggen und seine Zeit nicht arbeiten,Debug NodeJS App in CF

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

ich den Knoten Inspektor installiert haben, und ich sehe Nachricht in den Protokollen wie:

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

ich habe den Befehl ssh

Nun, was soll ich tun? es in der Führung sagt der folgende nach dem ssh

  1. export PATH=$PATH:/app/.heroku/node/bin

was .heroku sein sollte? Ich laufe nicht in heroku ... Also, welchen Weg sollte ich bieten?

2.when ich den folgenden Befehl ausführen in /app/node_modules/.bin

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

** Ich habe Fehler: ** /usr/bin/env: node: Keine solche Datei oder das Verzeichnis irgendeine Idee? Ich denke, es auf die erste Frage in engem Zusammenhang steht ...

Wir arbeiten an CF Version 2.74

Antwort

2

Aus den docs ...

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

Diese Anweisungen sind zwar allgemein, für die Node.js bauen packen Sie könnten einfach Führen Sie HOME=/home/vcap/app source $HOME/app/.profile.d/nodejs.sh aus, da nur eine Datei aus dem Build Pack stammt. Dann füge optional die .profile hinzu, wenn deine App eine hat und du sie aufnehmen willst/willst.

Auch, wie die Dokumentation erwähnt, sollten Sie alle .profile und .profile.d/*.sh Skripts durchgehen, bevor Sie sie ausführen, um sicherzustellen, dass es keine unbeabsichtigten Nebenwirkungen gibt.

UPDATE:

Ein etwas einfacher Weg, dies zu tun, ist cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''" zu laufen. Dadurch wird eine Bash-Shell geöffnet, und der Lifecycle-Launcher kann das Sourcing & einrichten und die Umgebung einrichten.

+0

HALLO Daniel, ich habe Fehler beim Versuch zu laufen: HOME =/home/vcap/app Quelle $ HOME/App /.profile.d/nodejs.sh der Fehler ist: bash: /home/vcap/app/app/.profile.d/nodejs.sh: Keine solche Datei oder Verzeichnis –

+0

Sie haben 'app' in Ihrem Pfad zweimal,'/home/vcap/app/app/.profile.d/nodejs.sh'. Entferne eine der 'app /' s. Wahrscheinlich bedeutet $ HOME bereits auf '/ home/vcap/app' gesetzt. Sie könnten also einfach 'source $ HOME/app/.profile.d/nodejs.sh' ausführen. –

1

würde ich vorschlagen, dieses Stück des Bluemix documentation on Application Management zu lesen. Es hat Abschnitte für Liberty und Node.js Apps. Für Node.js wird erläutert, wie der Inspektor aktiviert wird.

Für die konkrete Frage: Die node ausführbare Datei, die Sie suchen, ist unter /app/vendor/node/bin. So würde der Befehl:

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

also was soll ich in den Pfad legen, können Sie bitte Beispiel exportieren PATH = $ PATH: /app/.heroku/node/bin? –

+0

Ich habe es zur Antwort –

+0

hinzugefügt. THanks, ich habe mit dem Export PATH = $ PATH:/app/vendor/node/bin versucht, und als ich zu cd /app/node_modules/.bin kam und ./node-inspector laufen lassen - -web-port = 9090, ich habe Fehler:/usr/bin/env: node: Keine solche Datei oder Verzeichnis –