无法在docker容器

时间:2018-01-06 11:34:29

标签: docker dockerfile

我是docker的新手并创建了一个简单的测试应用来测试我的docker容器,但是docker无法找到server.py文件。

我的项目的目录结构是:

<project>
|
|-- Dockerfile
|-- app
      |
      |-- requirements.txt
      |-- server.py

以下是Dockerfile内容:

FROM ubuntu:latest

MAINTAINER name <mail@domain.com>

COPY . /app  # do I need this ?
COPY ./app/requirements.txt /tmp/requirements.txt

RUN apt-get -y update && \
apt-get install -y python-pip python-dev build-essential
RUN pip install -r /tmp/requirements.txt

WORKDIR /app
RUN chmod +x server.py    # ERROR: No such file or directory

EXPOSE 5000

ENTRYPOINT ["python"]
CMD ["server.py"]    # ERROR: No such file or directory

我在Windows上使用boot2docker。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

您正在将本地/app/文件夹复制到正在运行的Dock容器中的/app/文件夹(如评论中所述),在docker容器中创建/app/app/server.py

如何重新开发

一个简单的解决方法是改变

COPY . /app

COPY ./app/server.py /app/server.py

说明

docker命令COPY的工作原理如下:

COPY <LOCAL_FROM> <DOCKER_TO>

您在第一个.中使用COPY选择了Dockerfile所在文件夹中的所有内容。因此,选择要添加到Docker文件夹的本地/app文件夹。您在Docker容器上为其分配的目标也是/app,因此正在运行的容器中的路径变为/app/app/..,解释了找不到该文件的原因。

也许看一下Docker docs