通过在 Docker 容器中缓存包来加速构建

Ale*_*lls 4 node.js npm docker dockerfile npm-install

我有这个想法,但还没有完成。在 Dockerfile 中我有:

FROM node:10

WORKDIR /app

RUN "*cache node modules here*"
RUN e.g. npm cache add foo bar baz

COPY package.json .
RUN npm i --cache-min 9999999 --loglevel=warn

COPY . .

CMD node dist
Run Code Online (Sandbox Code Playgroud)

如何在 npm 安装步骤之前通过缓存一些 Node.js 模块/包来创建超高性能 Dockerfile?

有什么技巧可以做到这一点吗?

Dav*_*aze 7

这是开箱即用的 Docker 功能。如果你的 Dockerfile 说

FROM node:10
WORKDIR /app
COPY package.json .
RUN npm install

COPY ...
Run Code Online (Sandbox Code Playgroud)

然后,如果package.json没有更改,Docker 将跳过该RUN npm install步骤并使用执行此操作所生成的文件系统映像。