【问题标题】:Why concatenate install arguments in a docker file?为什么在 docker 文件中连接安装参数?
【发布时间】:2019-10-21 10:59:08
【问题描述】:

我们的一个项目有一个Dockerfile,代码如下:

RUN apt-get install -y PACKAGE1 PACKAGE2 PACKAGE3 etc

这相当于:

RUN apt-get install -y PACKAGE1
RUN apt-get install -y PACKAGE2
RUN apt-get install -y PACKAGE3
etc

后一种方法使用更多字符,但更明确并且(至少对我而言)更易于扫描和直观调试。例如,您可以找到重复的包或添加关于为什么需要特定包的注释。

像这样把所有东西都塞在一条线上有技术优势吗?

【问题讨论】:

    标签: linux docker ubuntu


    【解决方案1】:

    如果你使用第二种方法,你会得到一个大的 Docker 镜像,因为每个运行命令都会在你的镜像中创建一个新层。

    另一方面,第一个命令只会为图像再创建一层。

    thisthis

    【讨论】:

    【解决方案2】:

    第二种方法的优点是,如果您重建图像,则可以重复使用已构建的图像层。每层对应 Dockerfile 数据操作指令。 Docker 缓存未更改的已构建层,并根据 Dockerfile 指令仅重建已更改的层和之后的层。所以数据操作指令应该根据被操作数据的可变性来排序。例如,Dockerfile 源代码复制之类的指令应该放在最后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多