为什么 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.txt
和 myworker.py
。
在 docker-compose.yml
文件中有这一行:
volumes:
- ./frontend:/code
这意味着在您 运行 执行 docker-compose up
命令后,
docker 将在 /code
现有目录上安装卷。
/code
的内容并未从容器中删除,而是 "masked",因为挂载的目录挂载在现有文件之上。文件仍在容器中,但无法访问。
注意: 文件夹 ./frontend
包含文件 'apprequirements.txt' 这就是您认为只添加了一个文件的原因。
在下面的文件中,文件 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.txt
和 myworker.py
。
在 docker-compose.yml
文件中有这一行:
volumes:
- ./frontend:/code
这意味着在您 运行 执行 docker-compose up
命令后,
docker 将在 /code
现有目录上安装卷。
/code
的内容并未从容器中删除,而是 "masked",因为挂载的目录挂载在现有文件之上。文件仍在容器中,但无法访问。
注意: 文件夹 ./frontend
包含文件 'apprequirements.txt' 这就是您认为只添加了一个文件的原因。