在部署时跳过应用服务中的端口运行状况检查?

Sfy*_*ynx 5 azure node.js azure-web-app-service

我已在 Azure 中的应用服务上部署了 Node.js 应用程序。而部署似乎就到了这一步了。现在,显然它似乎正在尝试 ping 端口 8080:

2019-12-13 10:55:17.285 ERROR - Container xxx for site xxx did not start within expected time limit. Elapsed time = 230.4463132 sec

2019-12-13 10:55:17.288 ERROR - Container xx didn't respond to HTTP pings on port: 8080, failing site start. See container logs for debugging.

但是,所讨论的应用程序是一个机器人,并且不公开任何端口。是否可以“跳过”此运行状况检查,或者我是否需要在应用程序中打开端口?

小智 -1

感谢您提出问题!如果我理解正确的容器需要很长时间才能启动,因为默认时间是 230 秒,但我们可以通过添加名为 WEBSITES_CONTAINER_START_TIME_LIMIT 的应用程序设置将限制配置为 1800 秒,并将其设置为想要等待的秒数容器启动(最多 1800 秒)还要检查容器日志:如果运行“docker run”命令并且此处没有任何错误消息。只需仔细检查 Node.js 引擎是否正在侦听您正在使用的端口。您需要在 Dockerfile 中 EXPOSE 指令来公开端口。

您可以参考以下链接可能会有所帮助: https://blogs.msdn.microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/

https://learn.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq#custom-containers

  • 问题是,我正在部署一个用于不和谐的机器人。该机器人不需要任何端口即可“在线”。这就是为什么我没有暴露的端口。我能够通过打开一个端口并让它检查端口的运行状况检查来修复它,但我想知道是否有一个选项可以跳过该运行状况检查,因为我不想为此公开一个端口,但是也许我的心态是错误的。 (6认同)