2016-09-06 2 views
0

Запуск докера 1.12.1; на RH 7.2 64 бит.docker build не использует файл Docker в каталоге ** sticky **?

докер в целом работает нормально; мои команды запускать контейнеры; или импортировать архивы ... все нормально.

Но когда я пытаюсь это здесь:

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

я получаю:

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

Тогда я попробовал:

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

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

но

/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: - 

И только чтобы быть ясным: когда я использую ту же команду; и такой же dockerfile на моем локальном Ubuntu Linux, все это отлично работает. И нет, /данные не является символической ссылкой; но я понял: у него есть липкий набор бит. И, к сожалению, все каталоги в этой системе, на которые у меня есть разрешение на запись (/ data,/home и/tmp), являются липкими.

Вопросов:

  1. Любая идея, что является причиной этой проблемы?
  2. Конечно, более важно: решения или, по крайней мере, обходные пути?

Update, в соответствии с просьбой:

> ls -al $(which docker) 
-rwxr-xr-x 1 root root 13914136 Aug 18 07:07 /bin/docker 
+0

вы пропустите финальную точку, ваша команда должна быть 'docker build -t aaa .' – user2915097

+0

попробуйте' strace your command', чтобы посмотреть, что происходит – user2915097

+0

взгляните на https://github.com/docker/docker -py/issues/998 – user2915097

ответ

1

Проводка ответ на мою проблему здесь; на случай, если кто-то случайно столкнется с одной и той же проблемой; поскольку это не касается stat, lstat или чего-то еще.

Проблема была простой typo: при копировании рабочего файла Docker на мой удаленный сервер сборки; Я перепутались, и назвал этот файл Dockefile вместо Dockerfile (так г отсутствует в Docke г)

В сущности, докер дает правильное сообщение:

не смог подготовить контекст: не в состоянии оценить симлинку в пути Dockerfile: lstat /данные/Dockerfile: нет такого файла или каталога

но ипа к счастью, этот префикс «контекст/символические ссылки» просто вводит в заблуждение.

Смежные вопросы