docker build falha ao usar o Dockerfile no diretório ** sticky **?

0

Rodando a janela de encaixe 1.12.1; na RH 7,2 64 bits.

docker em geral funciona bem; meus comandos para executar contêineres; ou para importar arquivos ... tudo bem.

Mas quando eu tento isso aqui:

/data $ docker build -t foo/bar:1 

Eu recebo:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /data/Dockerfile: no such file or directory

Então eu tentei:

/data $ lstat Dockerfile
bash: lstat: command not found...
Similar command is: 'stat'

/data $ stat Dockerfile
stat: cannot stat ‘Dockerfile’: No such file or directory

mas

/data $ stat /data/Dockefile 
File: ‘/data/Dockefile’
Size: 471           Blocks: 8          IO Block: 4096   regular file
Device: fd03h/64771d    Inode: 127         Links: 1
Access: (0600/-rw-------)  Uid: (1125706/guenthne)   Gid: (  600/  gloadl)
Access: 2016-09-05 16:37:42.835090097 +0200
Modify: 2016-09-05 16:37:42.835090097 +0200
Change: 2016-09-05 16:37:42.835090097 +0200
Birth: -

E só para deixar claro: quando eu uso o comando same ; e o dockerfile same no meu Ubuntu Linux local, tudo isso funciona bem. E não, / data não é um link simbólico; mas eu percebi: tem o conjunto de bits sticky . E, infelizmente, todos os diretórios desse sistema que tenho permissão de gravação para (/ data, / home e / tmp) são fixos.

As perguntas são:

  1. Alguma ideia do que está causando esse problema?
  2. É claro, mais importante: soluções ou, pelo menos, soluções alternativas?
por GhostCat 05.09.2016 / 16:52

1 resposta

0

Publicando a resposta para o meu problema aqui; apenas no caso de alguém acidentalmente se deparar com o mesmo problema; como isso não é sobre stat, lstat ou qualquer coisa.

O problema era um simples erro de digitação : ao copiar o Dockerfile funcional para o meu servidor de compilação remota; Eu errei e chamei o arquivo Dockefile em vez de Dockerfile .

Então, o Docker fornece a mensagem correta:

não é possível preparar o contexto: não é possível avaliar links simbólicos no caminho do Dockerfile: lstat / data / Dockerfile: nenhum arquivo ou diretório

mas, infelizmente, esse prefixo sobre "context / symlinks" é enganoso.

    
por 06.09.2016 / 09:16