调整 Dockerfile 指令顺序,让依赖层缓存别频繁失效

层缓存逐层比对,某一层变了,它后面所有层都得跟着重建。

所以先只复制依赖清单,装完依赖再复制源码,改代码就不会重装依赖。

COPY . 之前先写 .dockerignore,把 node_modules 排掉。

依赖安装层可以用 BuildKit 的缓存挂载,把包管理器缓存留在本机复用。

# 反例:任何源码改动都会让 npm ci 那一层失效
COPY . .
RUN npm ci

# 正例:依赖清单在前,源码在后
COPY package.json package-lock.json ./
RUN npm ci
COPY . .

# .dockerignore
node_modules
.git
*.log
dist

# BuildKit 缓存挂载(文件首行加 # syntax=docker/dockerfile:1)
RUN --mount=type=cache,target=/root/.npm npm ci
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容