[Docker]构建maven镜像并用镜像打包

本文介绍了如何在Docker中构建maven镜像,以解决项目中maven版本低的问题。首先,通过在java8 Docker实例中安装maven并配置环境变量来构建镜像。然后,讨论了在容器中运行maven时遇到的环境变量失效问题及其解决方案。最后,展示了如何使用新构建的maven镜像进行jar包打包,并提供了一些优化技巧,如挂载volume以避免重复下载依赖。
摘要由CSDN通过智能技术生成

[Docker]构建maven镜像并用镜像打包

写在前面

由于项目使用的maven版本较低,在DockerHub上没有可以直接使用的maven镜像,于是自己构建了maven镜像,并使用该镜像将项目工程打包。

为什么要构建maven镜像呢?有了maven镜像之后,就不需要再在新的开发环境中安装maven了。镜像中的maven版本固定,不会出现不同开发者使用不同版本maven打包出现不必要的问题。

构建过程和maven打包过程有一些需要注意的地方,记录备查。

构建maven镜像

前一篇博文中记录了构建java8的过程。构建maven镜像依赖于之前构建的java环境。简而言之,就是先启动一个java8的docker,然后在这个docker实例中安装maven、配置环境变量、构建成镜像,提交到私有registry。以后打包直接一句指令就可以啦。

docker实例中安装maven

这一步跟在linux中安装maven过程类似,简略说一下。注意哦,以下是正常的安装maven的步骤。但是在docker环境下会启动maven有问题。先记下,后文讲问题及我的解决方法。

  1. 假设你将需要安装的maven压缩包放在宿主机的~/software路径,想把它影射成docker内部的/mnt/software
  2. 如果java8的基础镜像名字是java-base:1.8,则运行以下命令启动一个以此docker实例:

    $ docker run -it -v ~/software:/mnt/software java-base:1.8 /bin/bash

    注意,对于java-base:1.8这个镜像,docker会先搜索本地的images是否存在,如果不存在,默认会到dockerhub上下载。如果你之前是提交到dockerhub的,那还需要增加你的账户名(类似于zhangsan

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值