You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Container App创建后持续处于Provisioning状态,如何进一步排查?

Azure Container App 持续处于Provisioning状态排查方案

问题背景

  • 创建的Azure Container App在修订管理中状态持续显示Provisioning
  • 本地通过Docker命令可正常运行容器:
    docker run -it --rm -p 5000:80 --name my-container-app mycontainerapp
    
  • 容器为.NET 7应用,Azure UI中未指定端口5000
  • 日志流内容:

    Connecting...
    2023-05-18T09:03:27.45045 Connecting to the container 'mycontainerapp'...
    2023-05-18T09:03:27.46826 Successfully Connected to container: 'mycontainerapp' [Revision: 'mycontainerapp--76jjdmo', Replica: 'mycontainerapp--76jjdmo-6d96b7b78f-7qfvl']
    2023-05-18T09:03:06.011996999Z warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
    2023-05-18T09:03:06.012022639Z Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
    2023-05-18T09:03:06.029275741Z warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
    2023-05-18T09:03:06.029286423Z No XML encryptor configured. Key {14254724-e260-471f-a742-d96c22cb728f} may be persisted to storage in unencrypted form.
    2023-05-18T09:04:27.84065 No logs since last 60 seconds

排查步骤

1. 确认容器端口配置匹配

本地Docker命令中-p 5000:80表示容器内部监听80端口,本地仅做端口映射。Azure Container App需明确配置容器暴露的端口:

  • 进入Azure Portal的Container App页面,打开应用程序配置 -> 容器
  • 检查当前容器的端口设置,确保填写容器内部监听的80端口(而非本地映射的5000)
  • 若未设置端口,补充后重新触发部署

2. 检查健康探针配置

Azure Container App依赖健康探针判断容器是否就绪,配置错误会导致持续Provisioning:

  • 进入应用程序配置 -> 健康探针
  • 对于.NET 7应用,默认可配置:
    • 类型:就绪探针/存活探针
    • 协议:HTTP
    • 端口:80
    • 路径:/ 或应用已配置的健康检查端点(如/healthz)
    • 超时设为5秒,间隔设为10秒

3. 查看完整容器启动日志

当前日志仅显示启动初期警告,后续无输出可能是容器启动卡住:

  • 进入Container App的日志 -> 容器日志,选择对应修订版本和副本,查看完整启动日志
  • 排查是否存在未捕获异常、环境变量缺失、依赖服务连接失败等错误

4. 验证容器启动命令

本地运行用默认启动命令,Azure上需确保启动命令与本地一致:

  • 检查容器配置中的启动命令,若镜像未设置默认CMD/ENTRYPOINT,补充.NET 7应用的启动命令(如dotnet YourApp.dll)

5. 检查资源与网络配置

  • 确认Container App所在环境的CPU/内存配额未耗尽
  • 若容器需访问外部服务,检查环境的虚拟网络、出站规则是否允许;若使用私有镜像,确认镜像拉取凭证配置正确

6. 排除DataProtection警告影响

日志中的DataProtection警告为非致命提示,不会直接导致Provisioning状态,可在启动问题解决后再处理(如配置Azure Blob存储作为密钥存储)。

内容的提问来源于stack exchange,提问作者Ramesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:23:25