Compose: Erro ao montar o caminho do host com Docker para Windows ao usar DOCKER_HOST diferente

Criado em 12 dez. 2016  ·  3Comentários  ·  Fonte: docker/compose

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.

grouwindows-client

Comentários muito úteis

Parece que temos que definir isso em nosso ~/Documents/WindowsPowershell/Microsoft.PowerShell_profile.ps1

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

Todos 3 comentários

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
...
Esta página foi útil?
0 / 5 - 0 avaliações