Ao usar um DOCKER_HOST
, a menos que você defina COMPOSE_CONVERT_WINDOWS_PATHS=0
, qualquer montagem especificada em seu arquivo docker-compose irá falhar com:
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.
Isso é realmente confuso. Isso costumava funcionar bem antes.
Estou em 1.9.0
build 2585387
.
DOCKER_HOST
está definido para um servidor Linux remoto.
Os volumes são:
yml
volumes:
- /opt/data/foo/html/:/var/www/html
Só funciona quando COMPOSE_CONVERT_WINDOWS_PATHS=0
está definido ou quando está definido como COMPOSE_CONVERT_WINDOWS_PATHS=1
. Em outras palavras, ele só falha se COMPOSE_CONVERT_WINDOWS_PATHS
não estiver definido.
Na versão 1.9.0, você mencionou que:
Ao usar Compose com Docker Toolbox / Machine no Windows, os caminhos de volume não são mais convertidos de C: \ Users para / c / estilo de usuários por padrão. Para reativar essa conversão para que seus volumes continuem funcionando, defina a variável de ambiente COMPOSE_CONVERT_WINDOWS_PATHS = 1. Os usuários do Docker para Windows não são afetados e não precisam definir a variável.
A última parte Users of Docker for Windows are not affected and do not need to set the variable
não é verdadeira.
Obrigado pelo relatório.
Seu DOCKER_HOST
apontando para um servidor Linux remoto?
E quando você vir o erro, sua variável COMPOSE_CONVERT_WINDOWS_PATHS
não está definida ou para qual valor ela está?
Finalmente, o que acontece quando você define COMPOSE_CONVERT_WINDOWS_PATHS
para 1
vez disso?
@ shin- Sim, DOCKER_HOST
está apontando para um servidor Linux remoto.
O erro ocorre quando COMPOSE_CONVERT_WINDOWS_PATHS
não está definido. Quando eu defino para COMPOSE_CONVERT_WINDOWS_PATHS=0
(no PowerShell $env:COMPOSE_CONVERT_WINDOWS_PATHS=0
), então ele funciona.
Eu não tinha tentado antes, mas COMPOSE_CONVERT_WINDOWS_PATHS=1
também funciona. Vai saber...
Portanto, resumindo, ele só falha quando COMPOSE_CONVERT_WINDOWS_PATHS
não está definido. Vou atualizar a descrição do problema.
Parece que temos que definir isso em nosso ~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1
...
$Env:COMPOSE_CONVERT_WINDOWS_PATHS=1
...
Comentários muito úteis
Parece que temos que definir isso em nosso
~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1