Visual studio 如何使用docker-compose.override.yml为App_数据文件夹添加卷?

Visual studio 如何使用docker-compose.override.yml为App_数据文件夹添加卷?,visual-studio,docker,docker-compose,docker-for-windows,Visual Studio,Docker,Docker Compose,Docker For Windows,我正在试验Visual Studio的docker支持,并希望为C:\inetpub\wwwroot\App\u Data添加卷装载 我的Dockerfile如下所示: FROM microsoft/aspnet:4.7.1-windowsservercore-1709 ARG source WORKDIR /inetpub/wwwroot COPY ${source:-obj/Docker/publish} . 我的docker compose.yml文件如下所示: FROM microso

我正在试验Visual Studio的
docker
支持,并希望为
C:\inetpub\wwwroot\App\u Data
添加卷装载

我的
Dockerfile
如下所示:

FROM microsoft/aspnet:4.7.1-windowsservercore-1709
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
我的
docker compose.yml
文件如下所示:

FROM microsoft/aspnet:4.7.1-windowsservercore-1709
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
版本:“3.4”

services:
  my.app:
    image: ${DOCKER_REGISTRY}myapp
    build:
      context: .\My.App
      dockerfile: Dockerfile
现在,我已经尝试了在我的
docker compose.override.yml
文件中指定
volumes
的几乎所有变体,包括:

version: '3.4'

services:
  my.app:
    volumes:
      - "C:\\inetpub\\wwwroot\\App_Data"
    ports:
      - "80"
networks:
  default:
    external:
      name: nat

services:
  my.app:
    volumes:
      - "C:\\temp\\dockerappdata1":"C:\\inetpub\\wwwroot\\App_Data"
    ports:
      - "80"
networks:
  default:
    external:
      name: nat

services:
  my.app:
    volumes:
      - type: volume
        source: "app_data"
        target: "C:\\inetpub\\wwwroot\\App_Data"
    ports:
      - "80"
networks:
  default:
    external:
      name: nat
volumes:
  app_data:
但在所有情况下,我都无法运行该项目,它会报告
compose
中的某种配置问题,或者启动容器时出现问题,并显示超级无用的消息:

encountered an error during Start: failure in a Windows system call: The compute system exited unexpectedly.

正确的语法是什么?

如果我正确理解您的问题,您希望将“C:\inetpub\wwwroot\App\u Data”卷装到容器中,对吗

如果是这种情况,您应该在yaml文件中添加以下内容:

services:
  my.app:
    volumes:
      - C:\\inetpub\\wwwroot\\App_Data:C:\\temp\\dockerappdata1
     # Syntax is HOST_PATH:CONTAINER_PATH:[ro/rw] (the access mode is optional)
    ports:
      - "80"
有关语法的详细信息:


我认为这里的问题是,您正在尝试挂载一个已经存在的目录。

将范围缩小到实际问题,即没有任何覆盖文件、从组合文件中删除任何服务、删除端口、网络等