docker-compose运行失败

 环境 Windows

docker-compose 相关主要文件:

docker-compose.yml

version: '3.4'

services:
  daprfrontend:
    image: ${DOCKER_REGISTRY-}daprfrontend
    build:
      context: .
      dockerfile: DaprFrontEnd/Dockerfile
    ports:
      - "51000:50001"

  daprfrontend-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "daprfrontend", "-app-port", "80" ]
    depends_on:
      - daprfrontend
    network_mode: "service:daprfrontend"

  daprbackend:
    image: ${DOCKER_REGISTRY-}daprbackend
    build:
      context: .
      dockerfile: DaprBackEnd/Dockerfile
    ports:
      - "52000:50001"

  daprbackend-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "daprbackend", "-app-port", "80" ]
    depends_on:
      - daprbackend
    network_mode: "service:daprbackend"

docker-compose.override.yml

version: '3.4'

services:
  daprfrontend:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "80"
      - "443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
  daprbackend:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "80"
      - "443"
    volumes:
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

编译后,提示如下错误 

ERROR: for DaprBackEnd  Cannot create container for service daprbackend: status code not OK but 500: WatsonBuckets--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.Mounting.FileSharing.<ShareAsync>d__5.MoveNext() in C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.ApiServices\Mounting\FileSharing.cs:line 53
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.HttpApi.Controllers.FilesharingController.<ShareDirectory>d__2.MoveNext() in C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.HttpApi\Controllers\FilesharingController.cs:line 21
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()

网上搜索的结果,基本上都提到设置共享资源,如下所示

结合我的配置,在docker-compose.override.yml中发现volumns中的设置没有包含在docker中,

然并卵,改了docker-compose.override.yml的volumns的路径,没有效果

随后,在输出中看到如下命令

docker-compose  -f "F:\Xiang\Code\UnitTest\docker-compose.yml" 
-f "F:\Xiang\Code\UnitTest\docker-compose.override.yml" 
-f "F:\Xiang\Code\UnitTest\obj\Docker\docker-compose.vs.debug.g.yml" 
-p dockercompose7360960255224803855 
--no-ansi up -d --no-build --force-recreate --remove-orphans

命令中,有一个特殊的配置:docker-compose.vs.debug.g.yml

打开后,发现还有其他volumns,如下所示

version: '3.4'

services:
  daprbackend:
    image: daprbackend:dev
    container_name: DaprBackEnd
    build:
      target: base
      labels:
        com.microsoft.created-by: "visual-studio"
        com.microsoft.visual-studio.project-name: "DaprBackEnd"
    environment:
      - DOTNET_USE_POLLING_FILE_WATCHER=1
      - ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
      - NUGET_FALLBACK_PACKAGES=
    volumes:
      - F:\Xiang\Code\UnitTest\DaprBackEnd:/app
      - F:\Xiang\Code\UnitTest:/src
      - C:\Users\Administrator\vsdbg\vs2017u5:/remote_debugger:rw
      - C:\Users\Administrator\.nuget\packages\:/root/.nuget/packages:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

    entrypoint: tail -f /dev/null
    labels:
      com.microsoft.visualstudio.debuggee.program: "dotnet"
      com.microsoft.visualstudio.debuggee.arguments: " --additionalProbingPath /root/.nuget/packages  \"/app/bin/Debug/net5.0/DaprBackEnd.dll\""
      com.microsoft.visualstudio.debuggee.workingdirectory: "/app"
      com.microsoft.visualstudio.debuggee.killprogram: "/bin/sh -c \"if PID=$$(pidof dotnet); then kill $$PID; fi\""
    tty: true
  daprfrontend:
    image: daprfrontend:dev
    container_name: DaprFrontEnd
    build:
      target: base
      labels:
        com.microsoft.created-by: "visual-studio"
        com.microsoft.visual-studio.project-name: "DaprFrontEnd"
    environment:
      - DOTNET_USE_POLLING_FILE_WATCHER=1
      - ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
      - NUGET_FALLBACK_PACKAGES=
    volumes:
      - F:\Xiang\Code\UnitTest\DaprFrontEnd:/app
      - F:\Xiang\Code\UnitTest:/src
      - C:\Users\Administrator\vsdbg\vs2017u5:/remote_debugger:rw
      - C:\Users\Administrator\.nuget\packages\:/root/.nuget/packages:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

    entrypoint: tail -f /dev/null
    labels:
      com.microsoft.visualstudio.debuggee.program: "dotnet"
      com.microsoft.visualstudio.debuggee.arguments: " --additionalProbingPath /root/.nuget/packages  \"/app/bin/Debug/net5.0/DaprFrontEnd.dll\""
      com.microsoft.visualstudio.debuggee.workingdirectory: "/app"
      com.microsoft.visualstudio.debuggee.killprogram: "/bin/sh -c \"if PID=$$(pidof dotnet); then kill $$PID; fi\""
    tty: true

尝试将C:\Users\Administrator也加入到docker中,如下所示

重启后,再尝试编译,顺利通过

Creating DaprFrontEnd ... 
Creating DaprBackEnd  ... 
Creating DaprBackEnd  ... done
Creating dockercompose7360960255224803855_daprbackend-dapr_1 ... 
Creating DaprFrontEnd                                        ... done
Creating dockercompose7360960255224803855_daprfrontend-dapr_1 ... 
Creating dockercompose7360960255224803855_daprbackend-dapr_1  ... done
Creating dockercompose7360960255224803855_daprfrontend-dapr_1 ... done
完成!  Docker 容器已准备就绪。