Obtendo “Protocol Error” ao tentar criar um symlink no Docker

4

Estou tentando configurar um link simbólico, usando o comando

ln -s /var/www/data/cache/widget/overlay/ /var/www/public_html/images/overlay

mas gera

ln: failed to create symbolic link '/var/www/public_html/images/overlay': Protocol error

O sistema operacional host é o Windows 8 e a imagem do Docker é o Ubuntu. Acredito que o problema poderia estar relacionado a permissões, pois quando a imagem do Docker é iniciada, /var/www/public_html é mapeado para uma pasta dentro do Windows 8, /C/Users/Username/Documents/development/public_html . No entanto, eu posso criar pastas e arquivos via linha de comando dentro da pasta public_html , o que vai contra ela ser permissões.

Também não consigo encontrar para iniciar o Docker como administrador para ver se isso ajuda, pois é apenas um script .sh executado.

Alguém mais teve o "Erro de protocolo" ao criar links simbólicos? Ou alguma ideia de como eu poderia obter mais informações sobre o que causa esse problema?

EDIT: Além disso, se eu tentar salvar uma imagem via PHP para a pasta public_html ou copiar um arquivo lá (novamente, via PHP), isso dá a mesma mensagem "Erro de protocolo".

    
por TMH 21.04.2015 / 16:44

1 resposta

2

Portanto, /var/www/public_html é na verdade uma pasta do Windows mas /var/www/data não é? Você está tentando criar um link simbólico em um diretório do Windows em um diretório Ubuntu em uma máquina virtual. Não há como o Windows suportar um objeto como esse.

Para expandir o acima: Eu acho que o ponto é que o host do Windows é configurado como um servidor de arquivos, tornando C:\Users\Tom_Hart\Documents\development\public_html disponível para os clientes - especificamente, dando acesso de leitura / gravação para a imagem do Ubuntu, para que o Ubuntu possa ler, modificar e criar objetos dentro e sob esse diretório do Windows. Mas, em geral, os servidores não têm visibilidade de seus clientes (Como você se sentiria se o Google começasse a indexar seus arquivos e devolvê-los nos resultados de pesquisa?) A menos que a imagem do Docker esteja exportando seus arquivos, O Windows não tem como acessar /var/www/data - ou até mesmo entender esse caminho; por exemplo,

C:\Users\Tom_Hart\Documents> notepad /var/www/data/cache/widget/overlay/something

não vai funcionar (pode parecer que você quer dizer C:\var\www\data\cache\... ). Parece natural que o Windows se recuse a criar um link simbólico, em um diretório do Windows, para um recurso que não pode ser acessado por processos do Windows.

    
por 22.04.2015 / 04:58