web-dev-qa-db-ja.com

Linux上のAzure Webアプリ: "エラー:コンテナーはポート:8080でHTTP pingに応答しませんでした"-使用時: "start": "pm2 start server.js"

ノードアプリが開始スクリプトを使用している場合、App Service Linuxインスタンスがクラッシュします:"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.

コンテナーログには、上記のエラーしかありません。私だけを使用する場合:"start": "node server.js",アプリは問題なく起動します。

コンテナーが8080を介して応答しない場合、コンテナーは停止しますが、process.env.PORTサーバーのポートとして設定されているため、pm2起動スクリプトがコンテナをクラッシュさせる理由がわかりません。

process.env.PORT上記の開始スクリプトを使用している場合、プロセスでの混同が原因で未定義ですが、デバッグする方法を見つけることができませんコンテナがクラッシュした後は、もうsshでログインできませんそれを調べてください。

私はどんな提案も本当に感謝します、ありがとう。

4
Edmond Tamas

PORT 8080にpingしようとしていますか?ここでの問題は、ポート8080が公開されていないため、コンテナーにpingを実行しようとしたときに、コンテナーがリッスンしているポートにpingを送信していないことです。

これを解決するには、いくつかの方法があります。

  1. DockerfileでEXPOSE命令を使用して、ポート8080を公開します。
  2. WEBSITES_PORTアプリの設定を値「8080」で使用して、そのポートを公開します。

以下の記事を参照できます。

https://docs.Microsoft.com/en-us/Azure/devops/pipelines/tasks/deploy/Azure-rm-web-app-deployment?view=Azure-devops

https://blogs.msdn.Microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/

アプリケーションがリッスンしているポートの値を使用して、アプリケーション設定PORTを追加してみてください。

参照: https://github.com/MicrosoftDocs/Azure-docs/issues/34451

0
Steve Smith