Docker COPY не удалось ни один такой файл или каталог - PullRequest
0 голосов
/ 27 октября 2019

У меня проблема с моим Dockerfile. Я использую команду как это: COPY main.py /volume1/Files/ITenso-monitor

Когда я строю Dockerfile, я получаю эту ошибку: COPY failed: stat /volume1/@docker/tmp/docker-builder543642662/main.py: no such file or directory

Когда я запускаю эту команду:

RUN cd /volume1/Bestanden/ITenso-monitor/ && pwd \
 && ls

Я получаю этот вывод:

__pycache__
main.py
src

Весь Dockerfile:

FROM debian
FROM python:3.7
RUN apt-get update \
 && apt-get install -y git \
 && apt-get install -y openssh-server \
 && apt-get install -y python3 \
 && apt-get install -y python3-pip \
 && pip3 install requests
RUN git config --global user.name "username" && \
    git config --global user.password "password" && \
    git clone https://Username:Token@gitlab.com/group/repo.git /volume1/Bestanden/ITenso-monitor/
RUN cd /volume1/Bestanden/ITenso-monitor/ && pwd \
 && ls
COPY main.py /volume1/Bestanden/ITenso-monitor/
CMD ["python3", "main.py"]

Что вызывает эту проблему ... потому что main.py существует в каталоге.

Надеюсь, кто-нибудь сможет мне помочь. Заранее спасибо!

1 Ответ

2 голосов
/ 27 октября 2019

Контекст Dockerfile - ваша проблема. Каждая команда, которую вы даете dockerfile, выполняется в своем контексте, что означает текущий путь. Таким образом, если вы создаете копию файла, то Dockerfile ожидает, что файл будет находиться в текущем пути или в подкаталоге, если он указан.

Давайте возьмем в качестве примера вашу строку COPY.

COPY main.py /volume1/Bestanden/ITenso-monitor/

Dockefile ожидает, что путь будет в

./Dockerfile
./main.py

Вот ссылка на документацию https://docs.docker.com/engine/reference/commandline/build/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...