【发布时间】:2022-01-27 18:15:13
【问题描述】:
Docker 版本 19.03.12,构建 48a66213fe
所以在 dockerfile 中,如果我有以下几行:
RUN yum install aaa \
bbb \
ccc && \
<some cmd> && \
<etc> && \
<some cleanup>
这是最佳做法吗?当我调用其他 yum 部分与 分开?
如果我想要一个更干净(而不是可跟踪)的 Dockerfile,如果我将这些行放在 .sh 脚本中,可以调用该脚本(即 COPY 后跟 RUN 语句)。构建步骤是否每次都会运行,即使 .sh 脚本中没有任何变化**?** 在这里寻找一些陷阱。
我在想,无论包是稳定的,都有一个单独的RUN <those packages>,即在一层和依赖/经常更改的行,即可以使用用户定义的(docker build time CLI level args)将它们保持在单独的 RUN层(这样我就可以有效地使用层缓存)。
想知道你是否认为保持一个更干净的 Dockerfile(调用 RUN some.sh)会比一个可追溯的 Dockerfile 效率低(Dockerfile 中列出了所有内容是什么构成了该图像)。
谢谢。
【问题讨论】:
标签: docker docker-compose dockerfile containers docker-registry