我的目录结构如下
Dockerfile downloads
我想将下载内容添加到/ tmp
ADD downloads /tmp/
COPY down* /tmp
ADD ./downloads /tmp
Nothings的作品。它将下载内容复制到tmp中。我想复制下载文件。有什么想法吗?
ADD . tmp/
也复制Dockerfile。我不想将Dockerfile复制到tmp /
答案 0 :(得分:22)
我相信你需要:
COPY downloads /tmp/downloads/
这会将downloads目录的内容复制到图像中名为/tmp/downloads/
的目录中。
答案 1 :(得分:3)
注意:目录本身不会被复制,只是其内容
从有关COPY
和ADD
的dockerfile参考中,它显示Note: The directory itself is not copied, just its contents.
,因此您必须明确指定目录。
RE:https://docs.docker.com/engine/reference/builder/#copy
e.g。
将src
目录的内容复制到/some_dir/dest_dir
目录。
COPY ./src /some_dir/dest_dir/
答案 2 :(得分:1)
首先将要添加的目录tar作为单个存档文件:
tar -zcf download.tar.gz download
然后在Dockerfile中添加存档文件:
ADD download.tar.gz tmp/
答案 3 :(得分:0)
您可以使用:
RUN mkdir /path/to/your/new/folder/
COPY /host/folder/* /path/to/your/new/folder/
虽然我只能通过一次COPY
电话直接找到方法。
答案 4 :(得分:0)
对我来说最好的是:
COPY . /tmp/
在根目录中包含以下 .dockerignore 文件
Dockerfile
.dockerignore
# Other files you don't want to copy
如果您的容器中有许多文件夹和文件,而您不需要的文件又不是很多,则此解决方案很好。 否则,user2807690' solution会更好。
答案 5 :(得分:-1)
如果您的文件夹未以/
结尾,则会将其视为文件,因此如果您要复制文件夹,则应该写ADD /abc/ def/
。