关于这个,我过往写过专门的文章,需要了解的可以参阅: 对Docker基础镜像的思考,该不该选择alpine
使用多平台构建
虽然服务器主流都是X64架构的, 但这并不是完全....关于如何基于buildx构建多平台镜像,我写过专门的文章供参阅: Docker多平台镜像构建指引
利用多阶段构建
有时候,构建Docker镜像有一个很不好的问题,就是一些编译语言的依赖包下载....而针对这个困境, Docker特别提供了多阶段镜像. 多阶段构建大致就是指把一个Docker镜像构建分为多个阶段....比如以上面的Java服务为便,利用多阶段构建你可以做成这样
阶段一: 编译项目,这个过程会下载依赖
阶段二: 构建真正的镜像
这样不同阶段的好处在于, 如果你的依赖定义文件没有发生变更的前提下, 阶段一的构建...只要这样, 这个镜像运行时, 就是以你定义的用户来运行.
当然,在一些复杂的镜像构建中,要考虑用户权限,及后续挂载Host Volume时可能会有权限上的问题. 这一点后续我有时间再单独聊一下.