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

为什么Docker ADD命令不复制此文件?,docker,docker-compose,Docker,Docker Compose,在下面的文件中,将文件apprequirements.txt添加到容器中。我知道,因为pip安装工作正常。但是,不会复制/添加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/mywork

在下面的文件中,将文件
apprequirements.txt
添加到容器中。我知道,因为
pip安装
工作正常。但是,不会复制/添加
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运行此操作,您可以在

上看到整个示例,在深入查看您的回购协议后,这是我的结论:

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

docker compose.yml
文件中,您有以下行:

volumes:
  - ./frontend:/code
这意味着在运行
docker compose up
命令后, docker将在
/code
现有目录上装入一个卷

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


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

/backend/
文件夹中的
myworker.py
文件吗?您在github中的示例没有
backend
文件夹。你刚刚犯了路径错误吗?我知道,但这是一项正在进行的工作,我正在做的是将应用程序和myworker移动到单独的文件夹中,但它尚未被推送,因为它不会污染回购协议。不过,我现在会推它。我知道,但这是一项正在进行的工作,我正在做的是将应用程序和myworker移动到单独的文件夹中,但它尚未被推,因为它不会污染回购协议。但是,我现在就推它。我测试了你的Dockerfile,它看起来正在工作,你在将文件移动到容器中时仍然有问题吗?您的问题仍然有效?如果您在移动文件时仍然存在问题,可能是缓存问题,您可以尝试使用标志
--no cache
再次构建映像。否,仍然存在相同的问题。当我使用“docker compose up”运行此回购时,我从前端得到“ImportError:没有名为myworker的模块”。也许我应该告诉你我在OSX上,因此docker主机是VM?也许你的设置有差异?我安装了工具箱的1.10.1a,希望它能解决这个问题,但事实并非如此。我非常感谢@HemersonVarela指出这一点。我有一种感觉,像这样的事情正在发生。因此,我考虑了一下,并将回购协议更新为v0.3,现在整个测试正在运行!!