Azure App Service 容器不断重启

3

我创建了一个运行docker容器的Azure应用服务。

但是该容器似乎一直在重新启动: 2020-01-09 07:21:56.543 INFO - 容器XXX为站点xxx成功初始化并准备好提供请求服务。 2020-01-09 07:22:01.559 ERROR - 站点xxx的容器不健康,正在停止站点。 2020-01-09 07:22:01.559 INFO - 停止站点xxx,因为它不健康。

由于它是一款资源密集型应用程序,可能导致服务无法快速响应。

我已经尝试添加以下设置:

{ "name": "CONTAINER_AVAILABILITY_CHECK_MODE", "value": "Off", "slotSetting": false }

但没有效果。


你是否尝试扩大服务计划? - Charles Xu
是的,它仍在执行此操作,我想关闭健康检查。 - Stefan S
是的,我已经检查过了,它运行良好。 - Stefan S
你如何将图像部署到Azure Web App?你遵循哪些步骤? - Charles Xu
我直接从Docker Hub拉取它。 - Stefan S
显示剩余3条评论
1个回答

0
根据您使用的apache/drill:1.17.0镜像的Dockerfile,它不会将8047端口暴露给外部访问。有两种方法可以暴露此端口,在这里展示,并且之后您可以在外部访问。因此,第二种方法适用于此情况,当您设置环境变量WEBSITES_PORT并将值设置为8047时,您就可以在外部访问Web应用程序了。这是我的屏幕截图,可以正常工作:

enter image description here

更新:

看起来这个图像需要一个交互模式,运行它的docker命令应该是docker run -i --name drill-1.17.0 -p 8047:8047 --detach -t apache/drill:1.17.0 /bin/bash或者另一个类似的带有交互模式的命令。否则它会在几分钟后停止。但是您不能更改在Web App中运行图像的命令,因此您也无法在Web App中为图像使用交互模式。

因此,解决方案是您需要创建一个自定义图像,以基于图像apache/drill:1.17.0保持其运行状态。然后它就可以正常工作了。


这是我使用的设置: [ { "name": "CONTAINER_AVAILABILITY_CHECK_MODE", "value": "关闭", "slotSetting": false }, { "name": "DOCKER_REGISTRY_SERVER_URL", "value": "https://index.docker.io", "slotSetting": false }, { "name": "WEBSITE_HTTPLOGGING_RETENTION_DAYS", "value": "1", "slotSetting": false }, { "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", "value": "false", "slotSetting": false }, { "name": "WEBSITES_PORT", "value": "8047", "slotSetting": false } ] - Stefan S
@StefanS 请查看我的回答中的更新。我认为您是在交互模式下测试图像,所以它在本地运行良好。 - Charles Xu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接