Simple Dash应用本地运行正常,部署至Azure Web App报错求助
问题排查与解决方向
1. 修复Dockerfile启动命令错误
你的Dockerfile最后一行启动命令存在问题:
CMD ["python", "-m", "app.py"]
-m参数用于运行Python模块(不带.py后缀),直接执行脚本文件无需该参数,正确写法应为:
CMD ["python", "app.py"]
启动命令错误会直接导致容器无法正常初始化。
2. 修正依赖文件名拼写错误
你的文件夹结构中依赖文件名为requirements.text,但Dockerfile中执行的是COPY requirements.txt .,镜像构建时会因找不到依赖文件导致安装失败,容器启动无环境支撑。
- 将
requirements.text重命名为requirements.txt,重新构建并推送镜像至容器注册表。
3. 配置Azure App Service端口转发规则
Azure App Service默认将外部流量转发到容器的80端口,如果你在app.run_server中指定了其他端口(如8050),需手动配置端口映射:
- 进入Azure门户的目标App Service(mickPracticeWebApp)
- 选择「配置」→「应用程序设置」
- 添加新配置项:
WEBSITES_PORT,值设为你的容器监听端口(如8050) - 保存配置并重启App Service
4. 查看App Service实时日志定位具体错误
「Application Error」是通用提示,必须查看具体日志才能找到根因:
- 在Azure门户进入App Service,选择「日志」→「应用日志」,开启日志后查看实时输出
- 或在VSCode的Azure扩展中,右键目标App Service选择「查看日志」
- 日志会明确显示容器启动失败的原因,比如依赖缺失、命令执行错误、端口冲突等
5. 验证镜像拉取与部署状态
- 进入App Service的「部署中心」,查看镜像拉取日志,确认是否成功拉取
mickpracticeregistry.azurecr.io/practice:latest - 若拉取失败,检查容器注册表的访问权限:确保App Service拥有拉取镜像的权限,可在容器注册表的「访问控制」中配置对应角色,或在App Service部署中心补充注册表凭证
内容的提问来源于stack exchange,提问作者Mick
相关产品推荐
相关产品推荐

