1

我正在尝试在 Windows 7 的 docker 上运行 asp.net 核心应用程序。我安装了 Visual Studio 2015 Enterprise(更新 3)和 Visual Studio Tools for Docker。此外,我能够在发布配置中运行应用程序。

我没有对 Dockerfile 和 compose 文件进行任何更改,这些是在我创建项目并添加 Docker 支持时创建的默认设置。

当我使用调试配置运行应用程序时,我收到以下错误,并且它没有运行任何 docker 容器来运行和调试应用程序:

Error   MSB4018 The "PrepareForLaunch" task failed unexpectedly.
System.InvalidOperationException: Unable to validate volume mapping. For troubleshooting, follow instructions from http://aka.ms/DockerToolsTroubleshooting
   at Microsoft.DotNet.Docker.BuildTasks.PrepareForLaunch.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() SampleCoreApp   C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Publishing\ImportAfter\Microsoft.DotNet.Docker.targets  70  

解决此问题的任何帮助或线索都会有所帮助。

4

2 回答 2

0

这个问题是因为这里的驱动器映射存在一些问题。因此,我删除了一个驱动器映射(- .:/app),并在 docker-compose.dev.debug.yml 文件中更改了源参数(obj/Docker/empty 为 .),它对我有用。

上一个文件(docker-compose.dev.debug.yml):

version: '2'

services:
samplecoreapp:
    build:
    args:
        source: obj/Docker/empty
    labels:
    - "com.microsoft.visualstudio.targetoperatingsystem=linux"
    environment:
    - ASPNETCORE_ENVIRONMENT=Development
    - DOTNET_USE_POLLING_FILE_WATCHER=1
    volumes:
    - .:/app
    - ~/.nuget/packages:/root/.nuget/packages:ro
    - ~/clrdbg:/clrdbg:ro
    entrypoint: tail -f /dev/null

修改后:

version: '2'

services:
samplecoreapp:
    build:
    args:
        source: .
    labels:
    - "com.microsoft.visualstudio.targetoperatingsystem=linux"
    environment:
    - ASPNETCORE_ENVIRONMENT=Development
    - DOTNET_USE_POLLING_FILE_WATCHER=1
    volumes:
    - ~/.nuget/packages:/root/.nuget/packages:ro
    - ~/clrdbg:/clrdbg:ro
    entrypoint: tail -f /dev/null

希望这对那些面临这个问题的人有所帮助。

于 2016-11-29T11:58:50.487 回答
-1

这可能是由于 Docker 中的驱动器共享/卷安装问题,我遇到了这个确切的问题并从 Docker 设置中修复。这恰好出现在连接到公司域的机器中,默认情况下 docker 具有有限的权限。适当的解决方法是从 Docker 设置中更新您的“共享驱动器”。

更新共享云端硬盘

可以在此处找到更多详细信息https://blogs.msdn.microsoft.com/stevelasker/2016/06/14/configuring-docker-for-windows-volumes/

于 2017-05-28T23:40:03.453 回答