首页 > 解决方案 > Docker Compose 构建失败 - 文件共享已被取消 - eShopOnContainers

问题描述

我在运行由 Microsoft ( eShopOnContainers ) 提供的模板提供的示例 ASP.NET MVC Core 应用程序时遇到问题。

当我尝试使用 Visual Studio 2019 运行项目时,弹出以下错误。

严重性代码描述项目文件行抑制状态错误 DT1001 错误:对于支付 API 无法为服务支付 API 创建容器:状态代码不是 OK,而是 500:{“消息”:“未处理的异常:文件共享已被取消”,“StackTrace” :" 在 C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\Mounting\FileSharing 中的 Docker.ApiServices.Mounting.FileSharing.d__6.MoveNext()。 cs:line 0\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 C:\workspaces\stable-2.3.x\src\github.com\ 中的 Docker.ApiServices.Mounting.FileSharing.d__4.MoveNext() docker\pinata\win\src\Docker.ApiServices\Mounting\FileSharing.cs:line 47\r\n--- 在 System.Runtime 处从先前引发异常的位置结束堆栈跟踪---\r\n。 ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 C:\workspaces\stable-2.3.x\src\github.com\ 中的 Docker.HttpApi.Controllers.FilesharingController.d__2.MoveNext() docker\pinata\win\src\Docker.HttpApi\Controllers\FilesharingController.cs:line 21\r\n--- 在 System.Runtime 处从先前引发异常的位置结束堆栈跟踪 ---\r\n。 ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Threading.Tasks.TaskHelpersExtensions.d__1`1.MoveNext()\r\n- -- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 在 System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext()\r\n--- 堆栈跟踪从上一个异常位置结束被抛出 ---\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 在 System.Web.Http。 Controllers.ActionFilterResult.d__5.MoveNext()\r\n--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 处从先前引发异常的位置结束堆栈跟踪 ---\r\n\r\n
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()"} 如果错误仍然存​​在,请尝试重新启动 Docker Desktop。docker-compose C :\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 384

错误日志

这是我的设置,

有没有人有任何想法来解决这个问题?

[更新]

主要错误是:

Docker.ApiServices.Mounting.FileSharing.<ShareAsync>d__4.MoveNext() in
> C:\\workspaces\\stable-2.3.x\\src\\github.com\\docker\\pinata\\win\\src\\Docker.ApiServices\\Mounting\\FileSharing.cs

标签: visual-studiodockerasp.net-coredocker-compose

解决方案


您似乎尚未共享项目所在的驱动器(C:\workspaces?)

您需要在 Docker 中更新文件共享配置。在新版本中,2.2.0.0 中有一个新的安全强化,它具有激进的默认值。添加您需要的所有文件夹,然后重新启动 Docker for Windows。

在此处输入图像描述

[更新]

如果您使用的是 WSL,那么根据文档

文件共享:
文件共享选项卡仅在 Hyper-V 模式下可用,因为在 WSL 2 模式和 Windows 容器模式下,所有文件都由 Windows 自动共享。

https://docs.docker.com/docker-for-windows/#file-sharing

感谢@robby


推荐阅读