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

Why does Docker ADD command not copy this file?

在下面的文件中,文件 apprequirements.txt 被添加到容器中。我知道,因为 pip install 有效。但是,myworker.py 文件不是 copied/added。 为什么?

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

上看到整个例子

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

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

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

volumes:
  - ./frontend:/code

这意味着在您 运行 执行 docker-compose up 命令后, docker 将在 /code 现有目录上安装卷。

/code 的内容并未从容器中删除,而是 "masked",因为挂载的目录挂载在现有文件之上。文件仍在容器中,但无法访问。

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