Windows 在docker compose中创建全局绑定映射?

Windows 在docker compose中创建全局绑定映射?,windows,docker-compose,Windows,Docker Compose,我正在将一堆windows应用程序停靠在windows容器中 我的所有应用程序都需要相同的映射,下面是我的配置的一小段: 版本:“3.9” 服务: shell0: 建造: 目标:myimage 上下文:。 图片:“salimfadhley/myimage:最新” 入口点:c:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe 工作目录:“c:\\” 卷数: -类型:“绑定” 资料来源:“x: 目标:“x: 卷:#这一点不起作用

我正在将一堆windows应用程序停靠在windows容器中

我的所有应用程序都需要相同的映射,下面是我的配置的一小段:

版本:“3.9”
服务:
shell0:
建造:
目标:myimage
上下文:。
图片:“salimfadhley/myimage:最新”
入口点:c:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
工作目录:“c:\\”
卷数:
-类型:“绑定”
资料来源:“x:
目标:“x:
卷:#这一点不起作用!
xdrive:
资料来源:“x:
“xdrive”是我的所有应用程序都使用的网络驱动器共享。每个进程都需要访问“xdrve”,这就是为什么我要将它绑定到每个服务中

我通过重复Docker Compose文件中每个服务的配置来实现这一点。将会有很多这样的人。这将使我的docker编写的文件非常重复

有没有办法只定义一次“xdrive”,例如在全局“volumes”部分?我希望能够为每个服务执行类似的操作:

…服务
卷数:
-xdrive:“x:”

能做到吗?全局定义绑定装载的语法是什么?

您可以使用YAML语法解决此问题:

版本:“3.5”
服务:
一:
图片:busybox
命令:ls/foo
卷数:
-&volume-foo
类型:绑定
来源:。
目标:/foo
二:
图片:busybox
命令:ls/foo
卷数:
-*卷富
&volume foo
是一个锚,
*volume foo
是一个别名。别名重复在相应的锚之后声明的内容,在本例中是数组的单个对象。解析后,它将如下所示:

版本:“3.5”
服务:
一:
图片:busybox
命令:“ls/foo”
卷数:
- 
资料来源:”
目标:/foo
类型:绑定
二:
图片:busybox
命令:“ls/foo”
卷数:
- 
资料来源:”
目标:/foo
类型:绑定

这肯定会消除大部分重复!无法全局定义绑定映射吗?@SalimFadhley
volumes
部分用于创建卷。AFAIK当您绑定挂载某些内容时,您不会创建卷。我发布的解决方案是您需要的,但您可能需要更多的示例。使用YAML语法,您不仅可以引用一个对象,还可以合并多个对象并混合它们的属性(例如,覆盖
target
。也可以在
X-something
顶级键下声明公共键,再次使用锚和别名。@SalimFadhley参见本答案中的示例1感谢@anemyte的帮助。是的,我想我误解了全局卷选项的含义。我们没有创建新卷,w我们只是参考系统上已经存在的东西,所以这种方法工作得很好。