Mon instance Linux d'App Service se bloque si mon application de nœud utilise le script de démarrage: "start": "pm2 start server.js"
:
2019-04-15 11:36:34.432 ERROR - Container crime-digest__6ea5_0 for site crime-digest__6ea5 has exited, failing site start
2019-04-15 11:36:34.489 ERROR - Container crime-digest__6ea5_0 didn't respond to HTTP pings on port: 8080, failing site start. See container logs for debugging.
Les journaux de conteneur n'ont que l'erreur ci-dessus. Si j'utilise juste: "start": "node server.js",
l'application démarre très bien.
Je comprends que si le conteneur ne répond pas via 8080, le conteneur est arrêté, mais j'ai process.env.PORT
défini comme port de mon serveur, je ne peux donc pas comprendre pourquoi le script de démarrage pm2 plante le conteneur.
J'ai le sentiment que process.env.PORT
n'est pas défini si vous utilisez le script de démarrage ci-dessus en raison d'un mélange dans le processus, mais ne trouve aucun moyen de le déboguer car après le crash du conteneur, je ne peux plus y entrer ssh to l'inspecter.
J'apprécierais vraiment toute suggestion, merci.
Essayons-nous de cingler sur le PORT 8080? Le problème ici est que le port 8080 n'est pas exposé, donc lorsque nous essayons d'envoyer une requête ping au conteneur, nous ne faisons pas de ping sur un port sur lequel le conteneur écoute.
Il existe plusieurs façons de résoudre ce problème.
Vous pouvez consulter les articles mentionnés ci-dessous:
https://blogs.msdn.Microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/
Essayez d'ajouter le paramètre d'application PORT avec la valeur du port sur lequel votre application écoute.
Réf: https://github.com/MicrosoftDocs/Azure-docs/issues/34451