跳转至

.dockerignore

.dockerignore文件在Docker镜像构建过程中扮演着重要角色。它用于排除构建上下文中不需要的文件或目录,从而优化构建过程,减少镜像体积,并提高构建效率。本文将详细解析.dockerignore文件的作用、语法规则以及在实际开发中的应用场景。

docker CLI 客户端在执行 docker build 时,向 docker server 发送上下文时忽略哪些文件内容。

其使用方法和格式与 git 的 .gitignore 类似。

语法规则

.dockerignore文件的语法规则如下:

  • 通配符:支持使用*?进行通配符匹配。
  • 路径匹配:支持排除特定文件或目录,例如node_modules/
  • 注释:以#开头的行被视为注释。

应用场景

.dockerignore文件在实际开发中有多种应用场景,包括但不限于:

  • 排除开发环境中的临时文件:例如.git.DS_Store等。
  • 排除依赖目录:例如node_modulesvendor等。
  • 避免将敏感文件包含在镜像中:例如.env文件。

注意事项

在使用.dockerignore文件时,需要注意以下几点:

  • 路径.dockerignore文件的路径是相对于构建上下文的根目录。
  • 文件本身:如果.dockerignore文件本身被排除,则不会生效。

示例

以下是一个典型的.dockerignore文件示例:

# 忽略.git目录
.git/

# 忽略node_modules目录
node_modules/

# 忽略所有.log文件
*.log

# 忽略特定文件
.DS_Store