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

Den*_*ene 2 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
Run Code Online (Sandbox Code Playgroud)

我用docker-compose运行它,你可以在https://github.com/AvidSoftware-be/Docker-compose-test上看到整个例子

Hem*_*ela 5

经过深入审查您的回购后,这是我的结论:

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

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

volumes:
  - ./frontend:/code
Run Code Online (Sandbox Code Playgroud)

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

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

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