【问题标题】:Dockerfile and npm prune --productionDockerfile 和 npm prune --production
【发布时间】:2020-06-13 06:37:22
【问题描述】:

当我使用命令docker-compose build 构建 docker 映像时,我看到了一件意想不到的事情。 当Dockerfile 只有一个RUN 命令时

然后图像尺寸越来越小。

当我们将其拆分为每个单独的RUN

那么图像不会删除devDependencies(大约 70MB)。

有人可以解释为什么会这样吗?

【问题讨论】:

  • 我认为这个问题是由 cache 引起的。如果您使用相同的标签构建 Dockerfile 两次,由于存储在 docker 系统中的缓存构建,该命令将不会运行。
  • 我在做 docker system prune :(
  • 您说“图像尺寸减小了”,但随后在问题中放入了两个相当大的图像。你的意思是你的 Dockerfile 的副本吗?

标签: node.js docker docker-compose node-modules


【解决方案1】:

因为 Docker 镜像有layers,并且每个 RUN 命令都会创建一个新层,该层是上一层的差异。

您可以使用multi-stage Docker build 来完成您想要的。

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 2018-09-05
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多