我是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。
我在这里缺少什么?
答案 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。