我试图从我的本地主机复制一些文件和文件夹到一个docker映像构建。
文件如下所示:
folder1/
file1
file2
folder2/
file1
file2
我试着这样复制:
COPY files/* /files/
但是,folder1/
和folder2/
中的所有文件都直接放在/files/
中,而不放在它们的文件夹中:
files/
file1
file2
在Docker中有没有一种方法可以保留子目录结构,同时将文件复制到它们的目录中?例如:
files/
folder1/
file1
file2
folder2/
file1
file2
5条答案
按热度按时间tp5buhyn1#
使用此Dockerfile从COPY中删除星星:
结构是存在的:
relj7zay2#
或者,您可以使用“.”代替 *,因为这将获取工作目录中的所有文件,包括文件夹和子文件夹:
sxissh063#
要将本地目录**合并 * a到映像内的目录中,请执行此操作。它不会删除映像中已存在的文件。它只会添加本地存在的文件,如果已存在同名文件,则会覆盖映像中的文件。
qlzsbp2j4#
我无法得到这些答案中的任何一个。我不得不为当前目录添加一个点,这样工作的docker文件看起来就像这样:
此外,使用
RUN ls
来验证对我来说不起作用,让它工作看起来真的很复杂,一个更容易的方法来验证什么是在docker文件是运行一个交互式外壳,并检查出什么是在那里,使用docker run -it <tagname> sh
。bksxznpy5#
如果你想复制一个完整的源目录与相同的目录结构,那么不要使用星星(*).写COPY命令在Dockerfile如下.