我对 Docker 的缓存层的工作效果感到惊讶,但我也想知道它是如何决定是否可以使用缓存层的。
让我们以下面这些构建步骤为例:
Step 4 : RUN npm install -g node-gyp
---> Using cache
---> 3fc59f47f6aa
Step 5 : WORKDIR /src
---> Using cache
---> 5c6956ba5856
Step 6 : COPY package.json .
---> d82099966d6a
Removing intermediate container eb7ecb8d3ec7
Step 7 : RUN npm install
---> Running in b960cf0fdd0a
例如,它如何知道它可以使用缓存层的 npm install -g node-gyp
,但创建一个新的层的 npm install
?