gpt4 book ai didi

performance - 不在 Dockerfile 中使用许多 RUN 命令的原因是什么?

转载 作者:行者123 更新时间:2023-12-02 09:26:14 25 4
gpt4 key购买 nike

我看过几个 Dockerfile,我感觉人们尽量避免使用 RUN 命令。但是为什么?

那么有什么(除了这个例子中的重复文本)更喜欢

RUN gem install \
jekyll \
github-pages

结束

RUN gem install jekyll
RUN gem install github-pages

最佳答案

每次执行 RUN 命令都会从最后生成的图像创建一个临时容器,执行您的命令,并将结果保存为一个新层。最大限度地减少 RUN 命令既可以减少这些中间容器的开销,也可以显着缩小生成的图像的大小。

例如,如果您执行 2 个运行命令,一个用于下载 1 gig 数据,另一个用于删除该 gig 数据,那么即使在运行的容器中不可见,您生成的图像也会超过 1 gig。

因此,当下载大量缓存文件以安装或构建应用程序并在完成后清理构建环境时,最好将其作为一个步骤来执行,这样删除的文件就不会进入任何图片的一部分。

最后一个原因是缓存。如果您需要从软件包存储库中提取应用程序的新版本,您还需要在执行安装以提取最新版本之前更新该远程存储库中的信息(例如 apt-get update) .如果您将 apt-get updateapt-get install 分开,更新命令可能会从旧构建中缓存,并且安装将尝试拉取旧的或非存在的文件。

关于performance - 不在 Dockerfile 中使用许多 RUN 命令的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837212/

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