使用 Windows 个容器的 Azure 应用服务无法启动

Azure App Service using Windows Containers fails to start

我已经为 Windows 容器使用自定义 Docker 图像创建了 Azure 应用服务。该图像在我的 Windows 机器上使用 Docker Desktop 运行完全正常。 但是,Azure 容器不断重启并失败。

来自 Kudo 的 Azure 部署日志:

05/04/2022 18:04:28.774 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Attempting to start container
05/04/2022 18:04:46.474 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Start container succeeded.
05/04/2022 18:04:52.593 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Attempting to stop container: 6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28. Site app-myappdockertest1
05/04/2022 18:04:52.593 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Shutdown container: 6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28
05/04/2022 18:04:52.611 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Attempting to remove container: 6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28
05/04/2022 18:04:52.992 INFO - Site: app-myappdockertest1 - Purging pending logs after stopping container
05/04/2022 18:04:52.992 INFO - Site: app-myappdockertest1 - [6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28] - Container removed successfully. Container Id: 6a0179c8984360af8ceecd4730b66112335c73c54aa0ead74a2651f9f0abcc28
05/04/2022 18:04:53.003 INFO - Site: app-myappdockertest1 - Purging after container failed to start
05/04/2022 18:04:53.003 ERROR - Site: app-myappdockertest1 - Unable to start container. Error message: One or more errors occurred.

我找不到关于此错误的任何其他信息。想找到有关该错误的详细信息吗?

图像基于mcr.microsoft.com/dotnet/framework/wcf的最新版本。它包含一个托管在 IIS

中的 .NET WCF 服务

查看 AjayKumar-MSFT 提供的信息后问题的解决方案:

主要问题是我使用的父图像不受支持。当前版本的图像“mcr.microsoft.com/dotnet/framework/wcf”基于“Windows Server Core 2022”,而 Microsofts supported images 需要“Windows Server Core 2019”作为2022 年 4 月。

我已将 Docker 文件更改为

FROM mcr.microsoft.com/dotnet/framework/wcf:4.8-windowsservercore-ltsc2019

并且能够解决问题。容器启动时没有任何错误消息。

但是 AjayKumar-MSFT 关于内存使用的提示也很有帮助,因为我在应用程序启动后遇到了 OutOfMemoryExceptions。

至于支持的父图像,请查看 supported list

--您总是可以获取有关错误的更多详细信息,查看日志: 导航到 https://.scm.azurewebsites.net/DebugConsole 并单击 LogFiles 文件夹以查看各个日志文件。

--直接导航至 https://.scm.azurewebsites.net/api/logs/docker 以查看 Docker 日志的元数据。

--您可以使用文档中列出的父图像进行测试。

此外, 默认情况下,如果您的容器在 230 秒后没有响应,它将超时。 (此超时可以通过 WEBSITES_CONTAINER_START_TIME_LIMIT 应用程序设置增加。)并增加到 1800