當使用docker build構建鏡像的時,默認會將Dockerfile所在目錄下的全部文件或文件夾,添加到構建docker鏡像的上下文中,若是該上下文中包含太多不須要的文件或文件夾,將致使構建速度變慢。如:構建node項目鏡像,上下文包含node_modules文件夾,該文件夾中包含N多運行時不須要的文件或文件夾,嚴重下降docker build速度。java
[root@influx jdk1.8.0_191-centos7.6.1810]# ls -al total 187304 drwxr-xr-x 2 root root 4096 Jul 23 17:20 . drwxr-xr-x 14 root root 4096 Jul 23 17:29 .. -rwxr-xr-x 1 root root 392 Jul 15 15:32 build-push.sh -rwxr-xr-x 1 root root 153 Jul 15 15:32 build-run.sh -rwxr-xr-x 1 root root 138 Jul 15 15:32 build.sh -rwxr-xr-x 1 root root 125 Jul 15 16:01 config.sh -rw-r--r-- 1 root root 840 Jul 23 17:20 Dockerfile -rw-r--r-- 1 root root 51 Jul 15 15:32 .dockerignore -rwxr-xr-x 1 root root 5638 Jul 15 15:32 dump.sh -rw-r--r-- 1 root root 191753373 Jul 15 15:49 jdk-8u191-linux-x64.tar.gz [root@influx jdk1.8.0_191-centos7.6.1810]# ./build.sh Sending build context to Docker daemon 191.8MB # 構建時,建立上下文的步驟,此處可知上下文大小爲191MB Step 1/12 : FROM thub.xxxx.com.cn/digo/centos7.6.1810:2019-07-23_15-00-00 ---> 4331b9283ea1 ......
默認與Dockerfile文件同級目錄node
# 目的:提高docker編譯速度 # 作法:排除全部,包含須要的 # Reference: https://stackoverflow.com/questions/28097064/dockerignore-ignore-everything-except-a-file-and-the-dockerfile # Ignore everything ** # Allow files and directories !source/template-provider/target/template.jar !Dockerfile