Compose: 使用不同的 DOCKER_HOST 时,使用 Docker for Windows 挂载主机路径时出错

创建于 2016-12-12  ·  3评论  ·  资料来源: docker/compose

使用不同的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正确。

grouwindows-client

最有用的评论

看起来我们必须在~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1

...
$Env:COMPOSE_CONVERT_WINDOWS_PATHS=1
...

所有3条评论

感谢您的报告。

您的DOCKER_HOST指向远程 Linux 服务器?
当您看到错误时,您的COMPOSE_CONVERT_WINDOWS_PATHS变量是否未设置,或者它设置为什么值?
最后,当您将COMPOSE_CONVERT_WINDOWS_PATHS1会发生什么?

@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
...
此页面是否有帮助?
0 / 5 - 0 等级