在windows server 2019上运行的docker中装入单个文件(错误:卷规范无效…)

在windows server 2019上运行的docker中装入单个文件(错误:卷规范无效…),docker,docker-for-windows,docker-volume,Docker,Docker For Windows,Docker Volume,我正在尝试在Windows server 2019上运行的Docker EE中运行多个Linux容器。在我将单个文件装入容器之前,一切都进展顺利,如: VOLUME: - c:\xxx\yyy.xml:/app/yyy.xml 当我旋转实例时,我收到一个错误: 错误:for xxx无法为服务s1创建容器:无效的卷规范:“C:\Users\xxx\yyy.xml:/app/yyy.xml”类型“bind”的装载配置无效:源路径必须是目录 在运行Docker CE(在windows上)时可以装载

我正在尝试在Windows server 2019上运行的Docker EE中运行多个Linux容器。在我将单个文件装入容器之前,一切都进展顺利,如:

VOLUME:
 - c:\xxx\yyy.xml:/app/yyy.xml
当我旋转实例时,我收到一个错误:

错误:for xxx无法为服务s1创建容器:无效的卷规范:“C:\Users\xxx\yyy.xml:/app/yyy.xml”类型“bind”的装载配置无效:源路径必须是目录

在运行Docker CE(在windows上)时可以装载单个文件


有没有一种方法可以在没有太多定制解决方案的情况下实现这一点?

遗憾的是,没有--这是指向github相关问题的链接

它的要点

塔耶茨塔写道

正确,Windows上无法绑定装载文件。在Linux上, 不过也有相当多的陷阱,所以挂载目录是非常困难的 在许多情况下都是首选

然而,Drewster727指出了以下几点

想了解一下我的处境--

我们在遗留的.NET framework世界中运行应用程序(/sad face)-- 我们的应用程序二进制文件中混合了.config文件。我们没有 我们想要构建特定于环境的容器,所以当然,我们尝试 直接共享每个环境中已转换的配置文件 在容器内,将其放置到应用程序期望的位置

如果它对任何人都有帮助,我有一个简单的entrypoint.ps1脚本 暂时回避这个问题。与c:\conf共享一个目录 配置文件,脚本将它们复制到应用程序上下文中 开始时的文件夹:

if(测试路径c:\conf){ 复制项-路径c:\conf*-Recurse-Destination.-Force}


对于Windows绑定卷,您必须按如下方式格式化路径:

VOLUME:
 - /c/xxx/yyy.xml:/app/yyy.xml
我创建了一个方便的自动热键脚本,以便在Windows中更轻松地创建Docker格式的Windows路径:


谢谢你,克莱门斯如果任何答案解决了你的问题,请接受适当的答案,与社区分享解决方案。如果没有,请提供更多信息或分享您自己的解决方案。非常感谢。