问题
My App Service Linux instance crashes if my node app is using the start script: "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.
Container logs have nothing but the above error. If I use just: "start": "node server.js",
the app starts just fine.
I understand that if the container doesn't respond via 8080 the container gets stopped, but I'm having process.env.PORT
set as the port of my server so I can't figure out why the pm2 start script crashes the container.
I have a feeling that process.env.PORT
is undefined if using the above start script because of some mixup in the process but can't find any way to debug it because after the container crashes I'm unable to ssh into it any more to inspect it.
I would really appreciate any suggestion, Thanks.
回答1:
Are we trying to ping on PORT 8080? The problem here is that port 8080 is not exposed, so when we attempt to ping the container, we aren't pinging on a port on which the container is listening.
There are a couple of ways to resolve this.
- Use the EXPOSE instruction in your Dockerfile to expose port 8080.
- Use the WEBSITES_PORT app setting with a value of "8080" to expose that port.
You can refer the below mentioned articles:
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/
回答2:
Try adding the application setting PORT with the value of whatever port your app is listening on.
Ref: https://github.com/MicrosoftDocs/azure-docs/issues/34451
来源:https://stackoverflow.com/questions/55688600/azure-web-app-on-linux-error-container-didnt-respond-to-http-pings-on-port