我的目录结构如下
Dockerfile downloads
我想将下载添加到/tmp
ADD downloads /tmp/
COPY down* /tmp
ADD ./downloads /tmp
什么都不起作用。它将下载的内容复制到 tmp 中。我想复制下载文件夹。有什么想法吗?
ADD . tmp/
也复制 Dockerfile。我不想将 Dockerfile 复制到 tmp/
我相信你需要:
COPY downloads/ /tmp/downloads/
这会将下载目录的内容复制到图像中名为
/tmp/downloads/
的目录中。
注意:不复制目录本身,只是复制其内容
从关于
COPY
和 ADD
的 dockerfile 参考中,它说 Note: The directory itself is not copied, just its contents.
,所以你必须明确指定一个目标目录。
回复:https://docs.docker.com/engine/reference/builder/#copy
例如
将
src
目录的内容复制到/some_dir/dest_dir
目录中。
COPY ./src /some_dir/dest_dir/
您可以使用:
RUN mkdir -p /path/to/your/new/folder/
COPY /host/folder/ /path/to/your/new/folder/
我找不到一种方法可以直接通过一个
COPY
调用来做到这一点。
对我来说最好的是:
COPY . /tmp/
根目录下有以下 .dockerignore 文件
Dockerfile
.dockerignore
# Other files you don't want to copy
如果您在容器中有许多需要的文件夹和文件,而没有太多不需要的文件,则此解决方案很好。 否则user2807690'解决方案更好。
首先将要添加为单个存档文件的目录压缩:
tar -zcf download.tar.gz download
然后在Dockerfile中添加归档文件:
ADD download.tar.gz tmp/
从 Dockerfile 参考复制:
尚未提供稳定语法,请使用 docker/dockerfile:1.7-labs 版本。
COPY [--parents[=<boolean>]] <src> ... <dest>
--parents 标志保留 src 条目的父目录。这 标志默认为 false。
如果您的文件夹不以
/
结尾,则它被视为文件,因此如果您想复制文件夹,您应该写 ADD /abc/ def/
。