我创建了一个运行 grafana docker 镜像的 Web 应用程序,如下所示
az group create --name grp-test-container-1
--location "West Europe"
az appservice plan create --name asp-test-container-1
--resource-group grp-test-container-1
--sku B1
--is-linux
az webapp create --resource-group grp-test-container-1
--plan asp-test-container-1
--name app-test-container-1
--deployment-container-image-name grafana/grafana:latest
然后我更新了应用程序设置,以便将环境变量传递给 docker run 命令
az webapp config appsettings set --name app-test-container-1
--settings GF_INSTALL_PLUGINS='grafana-azure-monitor-datasource'
--resource-group grp-test-container-1
然后我需要重新启动容器才能在 docker run 命令中获取添加的环境变量。
我尝试重新启动 Web 应用程序、停止/启动它、更改 docker 镜像名称并保存在“容器设置”下。没有任何效果
有什么建议吗?
解决方案/错误
正如 Charles Xu 在他的回答中所说,要重新加载容器,您需要更改 docker 镜像并保存,以便使 Web 应用程序再次获取镜像并应用添加的环境变量。
就我而言,我进行了更改,然后查看了日志输出,但日志从未更新。我等了 5-10 分钟,仍然没有添加日志..
但是当我访问该网站并浏览到由环境变量安装的扩展时,我可以看到这一切都已完成。
所以,总结一下:容器设置中的日志不可信,在进行更改时,这些更改可能不会显示在日志中。
最佳答案
我刚刚与 Azure Web 应用/应用服务团队的支持工程师通了电话,此前我已经焦躁了好几天了。从字面上看。
因此,如果其他人遇到应用服务无法响应重启、配置更改、docker 镜像更改等问题,您可以尝试以下操作:
在 Azure 门户中,导航到您的应用服务,然后选择“配置”->“常规设置”,并将“始终打开”设置设置为“打开”。此设置默认设置为“关闭”,并且会使应用服务在一段时间没有收到任何请求后进入“空闲状态”。
触发应用服务脱离此空闲状态的唯一方法是对其执行请求。在第一个请求完成之前,重新启动、配置更改、docker 镜像更改等都不会生效。将“始终打开”设置设置为“打开”将阻止应用服务进入此空闲状态,因此它将始终响应。
就成本而言,此设置更改不会产生影响。除非您试图将尽可能多的应用程序强制纳入单个应用程序服务计划,其中许多应用程序很少使用,因此处于空闲状态时不会使用您的应用程序服务计划总数的任何资源。
关于Azure WebApp容器重启问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54523755/