Windows的Docker:无法添加卷

时间:2018-08-08 14:15:07

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

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

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

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

然后我想将config文件夹的内容复制到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

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

1 个答案:

答案 0 :(得分:0)

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