gpt4 book ai didi

node.js - 如何删除生产 docker 镜像中的开发依赖项

转载 作者:搜寻专家 更新时间:2023-11-01 00:38:46 27 4
gpt4 key购买 nike

将 dockerized node.js 运送到生产环境时,运送包含开发依赖项的图像是否正确?

我说的不是开发依赖不是 packages.json 中列出的 devDependencies,我的意思是 gcc、python、node-gyp 和其他一些 *-dev 包,包含一堆头文件、静态库。所有这些都需要编译一些 Node 依赖项(如 node-sass)

一个想法可以是两阶段构建,一个图像具有所有 *-dev 依赖项,在其中构建内容,然后将结果导出到另一个仅包含二进制文件的新图像。

  • 优点:最终的“生产”图像很小
  • 缺点:不是构建图像的标准方式

一般来说,我想在 docker 镜像中分发的任何已编译软件不应包含用于构建二进制文件的编译器、 header 和工具。

最佳答案

如果您希望某些内容不包含在您的最终图像中,您必须只在一层(一个 RUN 语句)中执行所有相关命令。

类似于下面的内容(伪代码):

RUN install dev-dependencies && build your-project && uninstall dev-dependencies

只为 RUN 语句创建一层,它不会包含开发依赖。

关于node.js - 如何删除生产 docker 镜像中的开发依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42142895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com