在按照以下步骤构建docker映像时
如果我在docker文件中使用以下命令从usr位置清理纱线缓存,那么在运行docker映像后会影响吗?
运行rm -rf /usr/local/share/.cache/yarn / *
因为docker映像的大小很大,为1.2 GB,所以我清理了上面的位置,该位置接近450+ MB。
我使用的是较低版本的docker(出于特定原因),该版本不支持多阶段构建。
此外,以上命令是否等效于RUN纱线清洁缓存?
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"]
答案 0 :(得分:1)
您可以安全地删除缓存文件,这不会影响您的应用程序。 There's even a dedicated command for that:
$ yarn cache clean
但是,使用Plug'n'Play时,清除缓存很可能会破坏您的应用程序,因为相关性不再放在node_modules
中。文档说的是这样:
在此安装模式下(现在是从Yarn v2开始的默认设置),Yarn生成单个.pnp.js文件,而不是通常的node_modules。 .pnp.js文件不包含已安装软件包的源代码,而是包含将软件包名称和版本链接到磁盘上某个位置的映射,以及包含将软件包名称和版本与其依赖项集链接的另一个映射。得益于这种高效的系统,Yarn可以告诉Node确切的位置,以查找所需的文件-不管谁要求它们!
磁盘上的位置是缓存。
您可以将旧行为放回.yarnrc.yml
文件中。
nodeLinker: node-modules
详细了解即插即用here