6

我按照教程将 .net 核心 Web 应用程序构建到 docker 映像中,发布到 azure 容器注册表,然后设置了我的 VSTS 发布模板以将容器部署到应用程序服务。

这一切似乎都有效,我可以在容器注册表中查看我的图像,并且部署似乎成功 - 但是当导航到应用程序服务站点时,我得到的只是 HTTP 503 - 服务不可用。

应用服务已启动,我可以通过 bash 在我的文件系统中看到部署 - 所以我想知道我是否遗漏了什么?

我的任何模板中都没有“启动”命令,我想知道是不是这个?

该站点从 VS2017 完美运行,包括通过 docker 进行调试,所以它真的只是一个案例......我如何让应用服务实际加载和执行图像?

谢谢!

编辑

除此之外,我还可以访问 docker 诊断日志,该日志声称“无法在此平台上使用映像操作系统“windows””。

我的基本映像是 microsoft/aspnetcore:2.0 映像,它在我的开发环境中的 linux 容器上运行得非常好……但似乎在 Linux 应用服务中不起作用?

aspnetcore:2.0 基础镜像不适合 linux 应用服务吗?

4

2 回答 2

6

我本周最终解决了,希望答案对其他人有所帮助。

当使用 VSTS 托管构建代理生成从 docker base microsoft/aspnetcore:latest 运行的映像时 - 除非您使用(Linux 预览版)托管构建代理,否则您将生成一个 Windows 容器,该容器不会在 linux 应用程序服务上运行。

一旦我切换到使用托管的 linux 构建代理,容器就会成功加载,我的问题就解决了。

于 2017-09-01T18:32:20.457 回答
0

相同错误消息的另一种解决方案:

尝试将 microsoft/aspnetcore(没有标记/版本:2.0)作为图像。如果这不起作用,请检查上面提到的 docker 日志,并根据确切的错误(通常是缺少的依赖项)寻找解决方案。

于 2018-04-04T08:07:52.320 回答