构建镜像明明没改几行,却每次上传很久,可以先看 build context 里是不是带了仓库历史和依赖目录。项目根目录放个 .dockerignore:
.git
node_modules
dist
coverage
*.log
然后再跑:
docker build --progress=plain -t demo .
环境:Docker BuildKit。.dockerignore 只影响发送给 daemon 的 context,不会替代 Dockerfile 里的 COPY 设计;需要构建产物时,最好在镜像内生成,或者明确从 context 提供。.env、证书这类文件也别顺手传进 context。