在构建docker镜像的时候,经过以下步骤后
如果我在docker文件中使用下面的命令清理usr位置的yarn缓存,是否会影响之后运行docker镜像?
RUN rm -rf usrlocalshare.cacheyarn*。
由于docker镜像的大小是巨大的1.2GB,所以我已经清理了上面的位置,有接近450多MB。
我使用的是低版本的docker(由于特殊原因),不支持多级构建。
另外,上面的命令是否相当于RUN yarn clean cache?
FROM node:10-alpine
WORKDIR /app
COPY . /app
RUN apk --no-cache add yarn \
&& yarn install \
&& ng build --prod \
&& rm -rf /var/cache/apk/* \
&& rm -rf /usr/local/share/.cache/yarn/*
EXPOSE 3000
CMD ["npm", "run", "start"]
你可以安全地删除缓存文件,它不会影响你的应用程序。甚至有一个专门的命令:
$ yarn cache clean
随着 即插即用然而,清除缓存很可能会破坏你的应用程序,因为依赖关系不再被放置在 node_modules
. 下面是文档中说的。
在这种安装模式下(现在从Yarn v2开始是默认的),Yarn会生成一个单独的.pnp.js文件,而不是通常的node_modules。.pnp.js文件并不包含安装包的源代码,而是包含一个连接包名和版本到磁盘位置的映射,以及另一个连接包名和版本到其依赖关系集的映射。多亏了这个高效的系统,Yarn可以准确地告诉Node在哪里寻找所需的文件--不管是谁要求的!磁盘上的位置是缓存的。
磁盘上的位置是缓存。
你可以通过将这个放在你的 .yarnrc.yml
文件。
nodeLinker: node-modules
阅读更多关于 Plug'n'Play 此处