Error when running docker build on any dockerfile: “unable to prepare context: unable to evaluate symlinks in Dockerfile path”

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.

1
задан 7 February 2018 в 16:49
3 ответа

В текущем каталоге запустите команду «ls» и посмотрите, какое расширение файла у Dockerfile. Если у вас есть расширение, вам нужно указать полный путь к Dockerfile.abc

. Или вы можете создать пустой Dockerfile БЕЗ расширения с помощью TextWrangler (доступно для Mac), а затем запустить команду

docker image build -t yourname/firstapp .

Надеюсь, вы уже решили вопрос; поделимся этим для будущих посетителей :) прилагается скриншот терминала с решением

enter image description here

2
ответ дан 3 December 2019 в 17:03

Я вижу, что этот вопрос задают в нескольких местах. Что ж, думаю, я нашел решение.

В более ранних версиях DockerFile назывался с заглавной буквы «F».Однако в последних выпусках DockerFile распознается только в том случае, если он содержит маленькую букву 'f'.

Недавно я обновил докер [Docker версии 17.09.1-ce, build 19e2cf6 на CentOS 7] и обнаружил, что

docker build -t someapp .

не работает, если текущий каталог содержит файл DockerFile , но работает хорошо, если он содержит Dockerfile

3
ответ дан 3 December 2019 в 17:03

Попробуйте этот синтаксис для создания образа докера с помощью сборки докера в версии докера 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].

1
ответ дан 26 March 2021 в 12:18

Теги

Похожие вопросы