Docker .dockerignore 完全指南.dockerignore就是构建时的.gitignore不加的话COPY . .会把垃圾全带进去。基本格式# 注释 node_modules .git .gitignore .env .env.local *.md README.md # 忽略根目录的temp /temp # 忽略所有temp目录 **/temp # 忽略temp开头的文件和目录 temp* # 只忽略src下的test src/*/*/test为什么要写.dockerignore构建上下文小docker build先把整个目录发给daemon文件越多越慢镜像干净不该进镜像的东西不进缓存友好少了无关文件变化缓存命中的概率更高安全.env文件不进镜像各语言模板Node.jsnode_modules npm-debug.log .git .env .env.* coverage test .vscode Dockerfile docker-compose*.yml *.md README.mdPython__pycache__ *.pyc *.pyo .git .env .venv venv .pytest_cache .mypy_cache *.egg-info dist buildJava.git target/ *.class *.jar *.war .idea/ *.iml .gradle/ build/Go.git *.exe *.test vendor/ .idea/常见坑.dockerignore必须在构建上下文根目录跟Dockerfile同级.dockerignore先匹配再排除顺序影响结果修改.dockerignore不会触发缓存失效它不是Dockerfile的一部分如果用了.dockerignore但还在COPY里写了排除的文件文件不会被复制**/node_modules比node_modules更彻底匹配任意深度---每个项目都应该有.dockerignore跟.gitignore一样是标配。不写就是在给镜像喂垃圾。