我已经按照教程将.net核心Web应用程序构建到docker映像,发布到azure容器注册表,然后我设置了我的VSTS Release模板以将容器部署到app服务。
这一切似乎都有效,我可以在容器注册表中查看我的图像,部署似乎成功 - 但是当导航到应用服务站点时,我得到的只是HTTP 503 - 服务不可用。
应用服务已启动,我可以通过bash在我的文件系统中看到部署 - 所以我想知道我是否遗漏了什么?
我没有创业公司'在我的任何模板中命令,我想知道它是否可能是这个?
该站点在VS2017中运行良好,包括通过docker进行调试,所以它真的只是...如何让App Service实际加载和执行图像呢?
谢谢!
修改
除此之外,我还可以访问docker诊断日志,声明"图像操作系统" windows"不能在这个平台上使用"。
我的基本映像是microsoft / aspnetcore:2.0映像,它在我的开发环境中的linux容器上运行得很好......但似乎在Linux App Service中不起作用?
aspnetcore:2.0基础映像不适合Linux应用服务吗?
答案 0 :(得分:6)
我本周最终解决了这个问题,希望答案可以帮助其他人。
当使用VSTS托管构建代理生成基于docker base microsoft / aspnetcore:latest运行的映像时 - 除非你使用(Linux预览版)托管的构建代理,否则你将生成一个不能在linux上运行的windows容器应用服务。
一旦我切换到使用托管的linux构建代理,容器就会成功加载,我的问题就解决了。
答案 1 :(得分:0)
针对同一错误消息的另一种解决方案:
尝试使用microsoft / aspnetcore(不带标签/版本:2.0)作为图像。如果这不起作用,请检查上面提到的docker日志,并根据确切的错误(通常是缺少的依赖项)寻找解决方案。