Docker多阶段构建实战(multi-stage builds),java基础知识点思维导图

| git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |

这个git项目中有多个文件夹,本章源码在springcloudscaledemo这个文件夹下,如下图红框所示:

在这里插入图片描述

springcloudscaledemo文件夹内有三个工程,本次实战用到的是eureka-server,如下图:

在这里插入图片描述

准备材料

在能正常运行docker的电脑上新建一个目录,例如我这里是ubuntu系统上/home/willzhao/temp/201906/02,将maven工程eureka-server复制到这个目录下;

避免每次构建镜像都下载工程所需的jar包

构建镜像过程中会用maven构建springboot工程,会下载springboot工程依赖的jar包,此过程很漫长,如果您多次构建Dockerfile镜像,那么每次都要经历这个过程,为了避免每次都下载,请做如下操作:

  1. 找一个可以运行maven的环境,把eureka-server工程复制到这个环境上;

  2. 在eureka-server目录下执行命令mvn clean package -U -DskipTests,开始构建此工程;

  3. 构建成功后,进入本地的maven缓存目录,通常是用户的home目录下的.m2文件夹,里面有个名为reposit

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

ory的目录;

  1. 将整个repository目录复制到前面提到的/home/willzhao/temp/201906/02目录下,和eureka-server放在同一目录,如下图:

在这里插入图片描述

这样,在编写Dockerfile的时候只要用这个repository覆盖镜像中的maven缓存,在编译时就不会去maven的中央仓库下载jar了,会节省很多时间。

编写Dockerfile

在/home/willzhao/temp/201906/02目录下创建文件Dockerfile,内容如下所示:

Docker image for multi stage build

VERSION 0.0.1

Author: bolingcavalry

第一阶段,用maven镜像进行编译

FROM maven:3.6.1 AS compile_stage

####################定义环境变量 start####################

#定义工程名称,也是源文件的文件夹名称

ENV PROJECT_NAME eureka-server

#定义工作目录

ENV WORK_PATH /usr/src/$PROJECT_NAME

####################定义环境变量 start####################

#作者

MAINTAINER BolingCavalry

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值