首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >码头工人。文件或目录不存在

码头工人。文件或目录不存在
EN

Stack Overflow用户
提问于 2016-03-15 21:01:04
回答 1查看 22.5K关注 0票数 6

我有一些文件想把它们搬到码头集装箱里。但最后码头找不到文件..。

带有本地计算机上文件的文件夹位于/home/katalonne/flask4

文件结构(如果重要的话):

Dockerfile

代码语言:javascript
复制
#
# 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

因此,我使用以下命令构建了图像:

代码语言:javascript
复制
docker build -t flask4 .

我用以下方法对容器进行了批量运行:

代码语言:javascript
复制
docker run -d -p 5000:5000 -v /home/Katalonne/flask4:/opt/flask4 --name web flask4

当我想在容器上运行文件时:

代码语言:javascript
复制
docker logs -f web

我得到了一个错误,它找不到我的hello.py文件:

代码语言:javascript
复制
python: can't open file 'hello.py': [Errno 2] No such file or directory

我的错是什么?

P.S.:我是一个码头工人和Linux部分-noob。

EN

回答 1

Stack Overflow用户

发布于 2016-03-15 21:25:19

与您的Dockerfile位于同一位置的文件和目录确实可以(暂时)用于您的停靠程序构建。但是,除非您已经使用ADDCOPY永久地将这些文件移动到对接器容器,否则在构建完成后,这些文件将无法用于您的停靠器容器。此文件上下文用于构建,但您希望将它们移动到容器中。

您可以添加以下命令:

代码语言:javascript
复制
...
ADD . /opt/flask4
ADD . . 

# Define deafult command.
CMD ["python","hello.py"]

ADD . .应该将临时构建上下文中的所有内容复制到容器中。这些文件将指向的位置是您的WORKDIR指向的位置(/opt/flask4)。

如果只想将hello.py添加到容器中,则请使用

代码语言:javascript
复制
ADD hello.py hello.py

因此,当您运行CMD ["python","hello.py"]时,您将在其中的pwd/opt/flask4,hello.py应该在其中,并且在该目录中运行python hello.py命令应该可以工作。

HTH。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36022051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档