我创建了一个docker镜像并将其添加到Azure容器注册表中。然后,我将其部署到Web App,但无法访问该站点。当我浏览到它加载很长时间(分钟)然后得到503错误'服务不可用。
我认为它可能是一个端口问题,因为我的docker文件有:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 15973
EXPOSE 44369
并且已将以下键/值对添加到应用程序设置:WEBSITES_PORT
:15973
但仍未返回任何内容。
我认为我会回到基础并使用web应用程序中的快速启动容器(appsvc/sample-hello-world:latest
),但这样做,实际上无法启动应用程序。
可能是什么问题?它应该像指向图像一样简单,以使网站启动并运行吗?是否有另一个公共模板我可以用作基本图像来查看容器运行?
更新
所以我尝试在@Charles建议的本地运行图像。当它启动它肯定运行就像我不传递环境变量(如连接字符串)然后我得到相关的错误消息。
在本地运行的问题是,在它开始之后,我不确定它是如何暴露的。我尝试过http://localhost:15973,http://localhost:44369,http://localhost/并试图传递-p 8080:80
然后http://localhost:8080但他们没有回应。
启动图像的响应是:
托管环境:生产
内容根路径:/ app
现在听:http://[::]:80
我认为这也是它在Azure中托管的问题,请求不会被路由到图像。
在图像中调用api需要做什么?
对于您的问题,我尝试测试Azure Web App for Containers并按照Deploy a Docker/Go web app in Web App for Containers中的步骤进行操作。它运作良好。
因此,我建议您先在本地计算机上测试图像。如果它可以在您的本地计算机上工作。