dockerignore文件
在实际情况下,Docker在读取应用上下文中的Dockerfile文件进行镜像构建之前,都会先查看当前应用上下文中是否包含一个名为.dockerignore的文件,如果该文件存在,则Docker会先将.dockerignore文件中声明的文件或目录进行排除,然后再读取Dockerfile进行镜像构建。使用.dockerignore将有助于在进行文件复制过程中避免向进程中加入过大或者敏感的无用文件和目录。
.dockerignore文件同Dockerfile文件一样,也是一个文本文件。二者的主要区别在于.dockerignore中存放的是被排除的文件,而Dockerfile中存放的是需要执行的指令。
接下来,通过一个简单的示例来讲解.dockerignore文件内容的编写,如文件1所示。
文件1 .dockerignore
1 # comment
2 */temp*
3 */*/temp*
4 temp?
在文件1中,第1行代码表示注释内容,其余3行代码均为被排除的文件。从被排除文件的编写方式可以看出,.dockerignore文件中可以使用通配符排除匹配路径下的文件。
下面针对使用通配符排除匹配路径下的文件进行具体分析。
● */temp*:排除根目录下任意子目录中所有名字以temp开头的文件或目录。例如文件/somedir/temporary.txt会被排除。
● */*/temp*:排除根目录下任意两级子目录中所有名字以temp开头的文件或目录。例如文件/somedir/subdir/temporary.txt会被排除。
● temp?:排除根目录下名字以temp开头,后面为任意一个字符的文件或目录。例如目录/tempa和/tempb都将被排除。
小提示:
在前面几个小节中,具体介绍了Dockerfile的基本结构和常用指令,读者想要写出好的Dockerfile文件就必须对具体的需求、一些shell命令以及注意事项有所了解,这些内容可以通过参考官方文档学习,其地址https://rock-it.pl/how-to-write-excellent-dockerfiles/
。