Ответ 1
Вы должны поместить эти файлы в один каталог с Dockerfile.
Я хочу создать образ докера. Это мой рабочий каталог: Dockerfile.in test.json test.py
И это мой файл Docker:
COPY ./test.json /home/test.json
COPY ./test.py /home/test.py
RUN python test.py
Когда я запускаю эту команду:
docker build -f Dockerfile.in -t 637268723/test:1.0 .
Это дает мне эту ошибку:
`Step 1/5 : COPY ./test.json /home/test.json
---> Using cache
---> 6774cd225d60
Step 2/5 : COPY ./test.py /home/test.py
COPY failed: stat /var/lib/docker/tmp/docker-builder428014112/test.py:
no such file or directory`
Кто-нибудь может мне помочь?
Вы должны поместить эти файлы в один каталог с Dockerfile.
Проверьте, есть .dockerignore
файл .dockerignore
, если да, добавьте:
!mydir/test.json
!mydir/test.py
Удаление ./
из исходного пути должно решить вашу проблему:
COPY test.json /home/test.json
COPY test.py /home/test.py
В вашем случае удаление./должно решить проблему. У меня был еще один случай, когда я использовал каталог из родительского каталога, а docker мог получать доступ только к файлам, находящимся ниже каталога, где присутствует Dockerfile так что если у меня есть структура каталогов /root/dir и Dockerfile/root/dir/Dockerfile
Я не могу скопировать, сделайте следующее
COPY root/src /opt/src
При использовании Docker создавать файлы, публиковать, публиковать в obj/Docker/Publish. Когда я скопировал туда свои файлы и указал свой Dockerfile на этот каталог (как сгенерированный), он работает…
Это может помочь кому-то еще сталкивающемуся с подобной проблемой.
Вместо того, чтобы помещать файл в тот же каталог, что и Dockerfile, создайте dir, поместите файл для копирования и попробуйте.
COPY mydir/test.json /home/test.json
COPY mydir/test.json /home/test.json
Я тоже столкнулся с тем же, я переместил свой файл докера в корень проекта. тогда это сработало
Вот причина, по которой это происходит, т.е. ваш локальный каталог в хост-ОС, где вы запускаете докер, должен иметь файл, иначе вы получите эту ошибку
Одним из решений является использование RUN cp <src> <dst>
вместо COPY <src> <dst>
затем запустите команду, она работает!
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>imagenam</name>
<alias>dockerfile</alias>
<build>
<!-- filter>@</filter-->
<dockerFileDir>dockerfile loaction</dockerFileDir>
<tags>
<tag>latest</tag>
<tag>0.0.1</tag>
</tags>
</build>
<run>
<ports>
<port>8080:8080</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>