Dan*_*Dan 6 node.js docker dockerfile yarnpkg
在构建 docker 镜像时,按照以下步骤操作
如果我在 docker 文件中使用以下命令从 usr 位置清除 yarn 缓存,它会在我运行 docker 映像时产生影响吗?
运行 rm -rf /usr/local/share/.cache/yarn/*
由于 docker 图像大小为 1.2 GB,所以我清理了上面接近 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"]
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 10
您可以安全地删除缓存文件,它不会影响您的应用程序。甚至还有一个专门的命令:
$ yarn cache clean
Run Code Online (Sandbox Code Playgroud)
然而,使用即插即用,清除缓存很可能会破坏您的应用程序,因为依赖项不再放置在node_modules
. 文档是这样说的:
在此安装模式下(现在是从 Yarn v2 开始的默认安装模式),Yarn 生成单个 .pnp.js 文件,而不是通常的 node_modules。.pnp.js 文件不包含已安装包的源代码,而是包含一个将包名称和版本链接到磁盘上位置的映射,以及另一个将包名称和版本链接到其依赖项集的映射。得益于这个高效的系统,Yarn 可以准确地告诉 Node 在哪里查找所需的文件 - 无论是谁请求它们!
磁盘上的位置是缓存。
您可以通过将其放入文件中来恢复旧的行为.yarnrc.yml
。
nodeLinker: node-modules
Run Code Online (Sandbox Code Playgroud)
在此处阅读有关即插即用的更多信息
归档时间: |
|
查看次数: |
2217 次 |
最近记录: |