Docker多阶段构建实战(multi-stage builds)

本文介绍了如何使用Docker的多阶段构建(multi-stage builds)特性,通过示例详细讲解了如何从maven镜像编译Java SpringBoot工程,然后与jre镜像结合,创建一个轻量级的可运行镜像,避免了构建过程中的冗余层,简化了Dockerfile的清理工作。
摘要由CSDN通过智能技术生成
  1. 有些工具在构建过程中会用到,但是最终的镜像是不需要的(例如用maven编译构建java工程),这要求Dockerfile的编写者花更多精力来清理这些工具,清理的过程又可能导致新的layer;

为了解决上述问题,从17.05版本开始Docker在构建镜像时增加了新特性:多阶段构建(multi-stage builds),将构建过程分为多个阶段,每个阶段都可以指定一个基础镜像,这样在一个Dockerfile就能将多个镜像的特性同时用到,例如:先用maven镜像构建java工程,再把构建结果和jre合成,就做成了一个可以直接运行java工程镜像了;

官方描述如下图所示,地址是:https://docs.docker.com/develop/develop-images/multistage-build/

在这里插入图片描述

官方的实例是golang的,今天我们以maven构建springboot工程为例,实战如何使用multi-stage特性构建java微服务镜像;

[](

)环境信息

本次实战的环境信息如下:

  1. 操作系统:Ubuntu 18.04.2 LTS

  2. Docker:18.06.1-ce

  3. Java:1.8.0_191

  4. Maven:3.6

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值