Dockerfile 内容排序

  1. 基本图像声明(FROM
  2. 元数据(例如 MAINTAINERLABEL
  3. 安装系统依赖项(例如 apt-get installapk add
  4. 复制应用依赖项文件(例如 bower.jsonpackage.jsonbuild.gradlerequirements.txt
  5. 安装应用程序依赖项(例如 npm installpip install
  6. 复制整个代码库
  7. 设置默认运行时配置(例如 CMDENTRYPOINTENVEXPOSE

这些排序是为了使用 Docker 的内置缓存机制优化构建时间。

经验法则:

经常更改的部件(例如代码库)应放在 Dockerfile 的底部附近,反之亦然。很少改变的部分(例如依赖性)应放在顶部。