首页 > 解决方案 > Docker for Windows:无法添加卷

问题描述

对于我们的产品,我们有一个文件夹,其中包含对每个客户都不同的配置文件。因此,此文件不在构建上下文中。

我试图向 docker-compose 文件添加一个卷。您可以看到下面的文件,这会导致以下错误

而且我想将配置文件夹的内容复制到 docker 容器(在 dockerfile 中)

码头工人撰写文件:

version: '3.4'

services:
     my_product:
     image: ${DOCKER_REGISTRY}my_product
     volumes:
      - .\container\conf:/var/my_config:rw
     build:
        context: .\container\Web
        dockerfile: Dockerfile

Dockerfile:

 FROM microsoft/aspnet:4.7.2-windowsservercore-1803
 ARG source
 WORKDIR /inetpub/wwwroot
 COPY ${source:-obj/Docker/publish} .
 COPY /var/my_config/. /inetpub/wwwroot/@conf/.

我无法修复 docker-compose 文件中的错误,我不确定复制 dockerfile 中的 my_conf 文件夹是否可行或一个好主意。

问候, 马尔科

更新了 docker-compose.yml

version: '3.4'

services:
  my_product:
    image: ${DOCKER_REGISTRY}my_product
    environment:
      COMPOSE_CONVERT_WINDOWS_PATHS: "0"
    volumes:
      - .\container\conf:/var/my_config:rw
    build:
      context: .\container\Web
      dockerfile: Dockerfile

我仍然收到“无效的卷规格”错误。

标签: dockerdocker-composedockerfiledocker-for-windows

解决方案


我认为您的 docker-compose 文件没有问题。尝试在 windows shell 中设置 COMPOSE_CONVERT_WINDOWS_PATHS=0。

如果您的本地驱动器是共享的,也请尝试设置 - 共享驱动器。

最后但并非最不重要的一点是,您可能会尝试在 docker compose 文件中单独创建卷,然后将其添加到容器中。

services:
  my product:
     build:
        context: .\container\Web
        dockerfile: Dockerfile
      volumes:
        newvolume:C:\path:/var/path/conf:rw

volumes:
      newvolume:

推荐阅读