我的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存在于目录中。
我希望有人能够帮助我。预先感谢!
答案 0 :(得分:2)
Dockerfile上下文是您的问题。您提供给dockerfile的每个命令都在其上下文中执行,这意味着当前路径。因此,如果您复制文件,则Dockerfile希望该文件位于当前路径或指定的子目录中。
以您的COPY行为例。
COPY main.py /volume1/Bestanden/ITenso-monitor/
Dockefile期望路径位于
./Dockerfile
./main.py
这里是文档https://docs.docker.com/engine/reference/commandline/build/
的链接