为什么Docker ADD命令不复制此文件?

时间:2016-02-17 19:34:03

标签: docker docker-compose

在下面的文件中,文件apprequirements.txt已添加到容器中。我知道因为pip install有效。但是,不会复制/添加myworker.py文件。的为什么吗

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD ./frontend/apprequirements.txt /code
RUN pip install -r apprequirements.txt
ADD ./backend/myworker.py /code

我用docker-compose运行它,你可以在https://github.com/AvidSoftware-be/Docker-compose-test

上看到整个例子

1 个答案:

答案 0 :(得分:5)

在对您的回购进行深入审核后,这是我的结论:

你的Dockerfile很好,它做了应该做的事情。它创建了一个图像,在该图像中创建了一个文件夹/code,并复制了两个文件apprequirements.txtmyworker.py

docker-compose.yml文件中,你有这一行:

volumes:
  - ./frontend:/code

这意味着在运行docker-compose up命令后, docker将在/code现有目录上挂载。

/code的内容未从容器中删除,但它被“屏蔽”,因为安装的目录安装在现有文件的顶部。文件仍在容器中,但无法访问。

注意:文件夹./frontend包含文件'apprequirements.txt',这就是您认为只添加了一个文件的原因。