I'm running :
$ docker build -t somefile .
Every time I run that I get this error:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat
The full error is:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/someusername/code/Dockerfile: no such file or directory
I thought this had to do with the docker version I'm using, so upgraded to the latest version using this guide: Установить последнюю версию докера . Я все еще получаю ту же ошибку. Пробовал разные версии докеров. Пробовал на разных серверах. I've even tried different docker files.
The last server I tried on I was using this version of docker:
Docker version 17.03.1-ce, build c6d412e
Not sure where I'm going wrong. Need a sanity check please.
В текущем каталоге запустите команду «ls» и посмотрите, какое расширение файла у Dockerfile. Если у вас есть расширение, вам нужно указать полный путь к Dockerfile.abc
. Или вы можете создать пустой Dockerfile БЕЗ расширения с помощью TextWrangler (доступно для Mac), а затем запустить команду
docker image build -t yourname/firstapp .
Надеюсь, вы уже решили вопрос; поделимся этим для будущих посетителей :) прилагается скриншот терминала с решением
Я вижу, что этот вопрос задают в нескольких местах. Что ж, думаю, я нашел решение.
В более ранних версиях DockerFile назывался с заглавной буквы «F».Однако в последних выпусках DockerFile распознается только в том случае, если он содержит маленькую букву 'f'.
Недавно я обновил докер [Docker версии 17.09.1-ce, build 19e2cf6 на CentOS 7] и обнаружил, что
docker build -t someapp .
не работает, если текущий каталог содержит файл DockerFile , но работает хорошо, если он содержит Dockerfile
Попробуйте этот синтаксис для создания образа докера с помощью сборки докера в версии докера 20.10.5, сборке 55c4c88, в Ubuntu 20.0.4 LTS, март 2021 г.:
$ docker build -t <containername> . -f <whateverthedockerfilename>.Dockerfile
ОБЪЯСНЕНИЕ:
Если при использовании команды «docker build» вы явно не укажете файл Dockerfile, из которого вы хотите создать образ Docker, механизм Docker по УМОЛЧАНИЮ будет искать файл Docker с именем файла «Dockerfile.Dockerfile». ' в исходном рабочем каталоге вместо файла Dockerfile с расширением '.Dockerfile'.
Таким образом, всякий раз, когда он не может найти файл «Dockerfile.Dockerfile», он логически выдает ошибку «невозможно подготовить контекст: невозможно оценить символические ссылки в пути Dockerfile: lstat /home/xxx/yyy/Dockerfile: нет такого файла или каталога». ."
Чтобы все заработало, вам просто нужно указать правильное имя вашего Dockerfile, как указано в вашем каталоге.
Это должно быть хорошо!
Надеюсь, это поможет!
PS:
Престижность ответа Акаша за указание выше, из какой версии докера возникает проблема [ https://serverfault.com/questions/856452/error-when-running-docker-build-on-any-dockerfile-unable -to-prepare-context-u/888666#888666
].