使用Dockerfile进行镜像构建,自然离不开RUN命令,相较于docker run的run命令,Dockerfile中的RUN是镜像创建阶段使用的命令,而docker run则是使用镜像启动容器阶段使用的命令。这篇文章主要介绍一下使用RUN命令常见的技巧和注意事项。
基本原则1: 尽量减少一个Dockerfile中的RUN命令的个数
RUN命令在构建时会创建一个新层,如非特殊的需要,建议一个Dockerfile在需要使用RUN命令的时候尽可能的只用一个RUN命令,将多条RUN命令进行合并可以有效降低构建的镜像的层数。
基本原则2: 使用&&连接多条命令
出错之后就地返回是Dockerfile中进行错误控制的一条经验,这样不但能快速定位到错误的地方,还能出错时减少镜像构建的时间。在RUN命令中如果需要使用多条语句,建议使用&&进行连接,单条语句结束时使用 \进行连接避免可读性太差。使用全部使用&&符的好处在于如果出错后续的内容就会不再执行,在镜像构建失败的时候根据出错的第一现场能更加容易地快速确认问题的原因。
基本原则3: 版本等变化信息以变量方式提前定义
考虑到那些内容会经常变化,比如版本的信息,此类信息往往会多处出现,后续版本升级的时候也需要进行修改,所以尽可能在整个Dockerfile中仅有一处进行定义,方便于调试和后续升级。
基本原则4: 避免复杂的逻辑实现
虽