使用Dockerfile进行构建镜像的构建自然而然地会碰到各种依赖,而Dockerfile的本质就是将所有这些依赖构成的版本基线的一个管理,如何更好的管理依赖,当依赖变化的时候,当镜像重构进构建的时候,是否存在多重的管理,这些都是Dockerfile在进行依赖管理时说需要考虑的内容。
基本原则
基本原则1: 稳定性
- 所有依赖的部分尽可能地需要满足依赖源的稳定性。
基本原则2: 幂等性
- 镜像构建应能够保持幂等性,多次执行结果结果不会发生变化。
基本原则3: 一致性
- 避免同一个文件的多处存放导致的不一致性。
注意事项细节说明
注意事项1: 谨慎使用latest
latest是一个变化的tag,不同时间其对应的tag可能是不同的,在使用时要谨慎。FROM指令指定了镜像的来源,如果不是希望实时每次都希望镜像使用最新的基础镜像,则需要慎用latest。比如FROM nginx:latest 每次构建的时候都会使用当时最新版本的nginx基础镜像,所以上述基本原则的稳定性、幂等性和一致性都会得到破坏。
但并非说不能使用latest,这里所有的原则都是希望使用者意识到使用的时候会带来的影响,只要基于此影响进行足够的确认和测试就可以了。