我已经创建了一个docker映像并将其添加到Azure容器注册表中。然后,我已将其部署到Web应用程序,但无法访问该网站。当我浏览到它时,它加载了很长时间(几分钟),然后出现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?
答案 0 :(得分:0)
对于您的问题,我尝试进行有关Azure Web App容器的测试,并按照Deploy a Docker/Go web app in Web App for Containers中的步骤进行操作。效果很好。
因此,我建议您首先在本地计算机上测试映像。如果它可以在您的本地计算机上正常工作。