保持Dockerfile整洁的5个技巧


保持Dockerfile整洁的5个技巧

文章插图
 
当Dockerfile超出合理范围时,会出现以下问题:
  • 很难理解和维护-我们需要阅读数百行以了解所有依赖关系
  • 在这么多行之间可能忽略一个明显的安全问题
  • 当每个人都在更改同一文件时,Git将引发更多冲突
  • 如果我们不清理每个依赖项,可能会导致镜像体积沉重
最好的解决方案是将Dockerfile拆分为多个Dockerfile,以使我们的Dockerfile更小,更易于理解和维护 。
这里是一些减少Dockerfile大小的技巧 。
重构1:从其官方镜像中获取依赖避免创建从官方镜像复制的工件 。例如:我需要使用terraform没必要再重新apt-get安装了,可以直接使用带有terraform的官方镜像 。
原始Dockerfile
FROM golang:1.12RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y git openssh-client zipWORKDIR $GOPATH/src/github.com/hashicorp/terraformRUN git clone https://github.com/hashicorp/terraform.git ./ &&     git checkout v0.12.9 &&     ./scripts/build.shWORKDIR /my-configCOPY . /my-config/CMD ["terraform init"]重构后Dockerfile
【保持Dockerfile整洁的5个技巧】FROM hashicorp/terraform:0.12.9 AS terraformFROM golang:1.12COPY --from=terraform /go/bin/terraform /usr/bin/terraformWORKDIR /my-configCOPY . /my-config/CMD ["terraform init"]


    推荐阅读