2017-01-13 4 views
1

У меня есть мертвое-простой проект со следующей структурой:Dockerfile построить давая lstat ошибку на ADD

docker/ 
|- src/ 
| |- config.json 
| 
|- Dockerfile 

содержимое файла JSon:

{ 
    "setting": "value" 
} 

Содержание в Dockerfile:

FROM python:3.5 

ADD src/config.json /testapp/config.json # Config 

Я запускать эту команду сборки:

docker build -t testapp:dev . 

И получить этот результат:

Sending build context to Docker daemon 4.608 kB 
Step 1 : FROM python:3.5 
---> 1d0326469b55 
Step 2 : ADD src/config.json /testapp/config.json 
lstat testapp/config.json: no such file or directory 

Почему этот недостаток? Почему это не найденный элемент testapp/config.json? Раньше я использовал эту точную конструкцию, например, для копирования файлов requirements.txt во временные рабочие каталоги. Я не понимаю, чего мне не хватает в том, как работают ADD, что приводит к сбою. Может ли кто-нибудь объяснить?

+0

Возможно, виноват «или справочник»? Существует ли целевой каталог? –

+0

Я мог ошибаться, но я думаю, что он создаст каталог (по крайней мере, у меня есть другой рабочий файл докеров, который, похоже, делает это). Если я добавлю 'RUN mkdir/testapp && ls -la/testapp' перед' ADD', он не с тем же сообщением, но создает и списывает каталог 'testapp'. –

ответ

2

Я стал жертвой своей IDE. Эта линия не получится:

ADD src/config.json /testapp/config.json # Config 

Но это удастся:

ADD src/config.json /testapp/config.json 

Чтение documentation для добавления, кажется, что он пытается использовать Config в качестве каталога назначения, и в качестве такового /testapp/config.json трактуется как исходный файл. IDE вычеркнул # Config, заставив меня подумать, что это рассматривается как комментарий: Dockerfiles не делает встроенных комментариев.

Это описано в Докер документации на comments:

Docker будет рассматривать строки, начинающиеся с символа # в качестве комментария. Маркер # в любом месте в строке будет рассматриваться как аргумент.

+0

Hah! Удивительно, как мы все просто игнорируем комментарии при чтении подобных вещей. Я этого и не заметил. –

+0

@NickBurke Да, я чувствую себя немного тусклым. Однако, оставив вопрос, если он помогает кому-то другому. –

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