需求:
- 在使用dockerfile 编写镜像的时候copy 了文件,然后又修改了文件的 owner 发现镜像变大了
- 期望不要变大
进程:
- dockerfile 来创建的镜像是根据命令一行一行叠加的大小
- 于是这边将copy 的命令改成 run 并且将权限的修改也放在同一行
- not work, 结果和之前的表现一样,空间还是变大了很多
- 查看资料发现,chown 和 chmod 在执行的时候,会在基于文件已经存在的时候再去创建一个图层所以表现就是镜像的大小大了
- 改成在拷贝的时候同时进行 chown 就不会有这种问题
COPY --chown=nobody:nobody /bigfile /bigfile
资料
- Using multi-stage builds to reduce Docker image sizes
- Why does chown increase size of docker image?