我有一个.dockerignore
文件,我试图让Docker只上传任何子文件夹的*.json
文件。
例如,对于下一个文件结构:
public/readme.md
public/subfolder/a.json
public/subfolder/b.json
public/other/c.json
public/other/file.txt
我期待在图像中只看到json文件:
public/subfolder/a.json
public/subfolder/b.json
public/other/c.json
当然,它们必须位于与原始源相同的目录中。
我尝试了几种方法但没有成功。
UP:我不知道将在public/
目录中创建多少个子文件夹以及目录结构的深度。
我认为你可以依靠一个这样的.dockerignore来实现你想要的东西:
public/*
!public/subfolder
public/subfolder/*
!public/other
public/other/*
!**/*.json
棘手的是,这个文件的第一行是public/*
但不是public
也不是*
(否则!...
后续行将不起作用)。
另请注意,您可能希望自动生成一个这样的.dockerignore,以应对可能的树结构更改。
例如:
跟-dock而ignore.是
#!/usr/bin/env bash
{ echo '*' ; # header of the .dockerignore - to be changed if need be
find public -type d -exec echo -en "!{}\n{}/*\n" \; ;
echo '!**/*.json' ; } > .dockerignore
$ ./gen-dockerignore.sh
将输出以下文件:
.dockerignore
*
!public
public/*
!public/other
public/other/*
!public/subfolder
public/subfolder/*
!**/*.json