使用不同的DOCKER_HOST
,除非您设置COMPOSE_CONVERT_WINDOWS_PATHS=0
,否则您在 docker-compose 文件上指定的任何挂载都将失败:
ERROR: for db Cannot create container for service db: create <volume>: "<volume>" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed
ERROR: Encountered errors while bringing up the project.
这真的很令人困惑。 这以前可以正常工作。
我在1.9.0
构建2585387
。
DOCKER_HOST
设置为远程 linux 服务器。
卷是:
yml
volumes:
- /opt/data/foo/html/:/var/www/html
仅在设置COMPOSE_CONVERT_WINDOWS_PATHS=0
或设置为COMPOSE_CONVERT_WINDOWS_PATHS=1
时才有效。 换句话说,它只有在COMPOSE_CONVERT_WINDOWS_PATHS
未设置时才会失败。
在1.9.0 版本中,您提到:
在 Windows 上使用 Compose 与 Docker Toolbox/Machine 时,默认情况下不再将卷路径从 C:\Users 转换为 /c/Users 样式。 要重新启用此转换以便您的卷继续工作,请设置环境变量 COMPOSE_CONVERT_WINDOWS_PATHS=1。 Docker for Windows 用户不受影响,不需要设置该变量。
最后一部分Users of Docker for Windows are not affected and do not need to set the variable
不正确。
感谢您的报告。
您的DOCKER_HOST
指向远程 Linux 服务器?
当您看到错误时,您的COMPOSE_CONVERT_WINDOWS_PATHS
变量是否未设置,或者它设置为什么值?
最后,当您将COMPOSE_CONVERT_WINDOWS_PATHS
为1
会发生什么?
@shin- 是的, DOCKER_HOST
指向远程 Linux 服务器。
当COMPOSE_CONVERT_WINDOWS_PATHS
未设置时会发生错误。 当我将它设置为COMPOSE_CONVERT_WINDOWS_PATHS=0
(在 powershell $env:COMPOSE_CONVERT_WINDOWS_PATHS=0
)时,它就可以工作了。
我以前没有尝试过,但COMPOSE_CONVERT_WINDOWS_PATHS=1
也有效。 去搞清楚...
所以,总而言之,它只会在COMPOSE_CONVERT_WINDOWS_PATHS
未设置时失败。 我会更新问题描述。
看起来我们必须在~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1
...
$Env:COMPOSE_CONVERT_WINDOWS_PATHS=1
...
最有用的评论
看起来我们必须在
~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1