我有一些文件,我想将它们移动到 Docker 容器中。
但最后 docker 找不到文件..
本地计算机上包含文件的文件夹位于/home/katalonne/flask4
文件结构如果重要的话:
The Dockerfile:
#
# First Flask App Dockerfile
#
#
# Pull base image.
FROM centos:7.0.1406
# Build commands
RUN yum install -y python-setuptools mysql-connector mysql-devel gcc python-devel
RUN easy_install pip
RUN mkdir /opt/flask4
WORKDIR /opt/flask4
ADD requirements.txt /opt/flask4
RUN pip install -r requirements.txt
ADD . /opt/flask4
# Define deafult command.
CMD ["python","hello.py"]
# Expose ports.
EXPOSE 5000
所以我用这个命令构建了图像:
docker build -t flask4 .
我通过以下方式运行容器的体积:
docker run -d -p 5000:5000 -v /home/Katalonne/flask4:/opt/flask4 --name web flask4
当我想在容器上运行该文件时:
docker logs -f web
我收到此错误,它找不到我的 hello.py 文件:
python: can't open file 'hello.py': [Errno 2] No such file or directory
我有什么错?
附: :我是 Docker 和 Linux 的菜鸟。
与 Dockerfile 位于同一位置的文件和目录确实(暂时)可用于您的 docker 构建。但是,在 docker 构建之后,除非你使用过ADD
or COPY
要将这些文件永久移动到 docker 容器,构建完成后,它们将不可用于 docker 容器。该文件上下文用于构建,但您希望将它们移动到容器中。
您可以添加以下命令:
...
ADD . /opt/flask4
ADD . .
# Define deafult command.
CMD ["python","hello.py"]
线路ADD . .
应该将临时构建上下文中的所有内容复制到容器中。这些文件将到达的位置就是您的位置WORKDIR
指向(/opt/flask4)。
如果您只想将 hello.py 添加到容器中,请使用
ADD hello.py hello.py
所以,当你跑步时CMD ["python","hello.py"]
, the pwd
你将身处的是/opt/flask4
,并且 hello.py 应该在那里,并运行命令python hello.py
在该目录中应该可以工作。
HTH.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)