【问题标题】:Docker for Windows: Could not add VolumeDocker for Windows:无法添加卷
【发布时间】:2018-08-08 14:15:07
【问题描述】:

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

我已尝试将卷添加到 docker-compose 文件中。您可以看到下面的文件,这会导致以下错误

  • 错误:对于 my_product 无法为服务 my_product 创建容器:无效的卷规范:'C:\path\to\container\conf:/var/my_config:rw'

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

docker-compose 文件:

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

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

【问题讨论】:

    标签: docker docker-compose dockerfile docker-for-windows


    【解决方案1】:

    我认为您的 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:
    

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2020-10-04
      • 2022-10-04
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多