docker maven 打包jar_使用maven的docker镜像进行打包如何切换为阿里云镜像仓库

背景:我的blog项目是运行在一台云主机上的,使用的是docker进行部署。可能是有点洁癖的原因,我没有直接在云主机上安装过多的环境或者应用,转而使用docker镜像来实现一系列的操作。如:我打包应用的操作使用的是maven的docker镜像实现的,打包开始时运行一个maven容器,打包结束之后就把容器停止移除。

我使用的maven镜像版本为maven:3.5.0-jdk-8-alpine

在实际的使用中,我使用了-v命令指定了云主机的一个目录作为本地仓库的地址,避免每一次打包都需要重新下载jar包的情况出现。

但是这个时候有另外一个问题出现了,也就是标题中的问题,因为默认的maven镜像的仓库下载地址太慢了,我需要切换成阿里云的镜像仓库。根据官方的说明:To add your custom settings.xml file to the image use

COPY settings.xml /usr/share/maven/ref/

意思是如果需要自定义maven的配置,只需要将maven的配置文件拷贝到/usr/share/maven/ref/目录下即可,那么问题就好办了,继续使用-v命令即可。

以下是我最终的打包脚本:echo -e '使用maven镜像编译代码'

docker stop maven

docker rm maven

docker run -it --name=maven \

-v /home/mvn-config/:/usr/share/maven/ref \

-v /home/mvn:/root/.m2 \

-v /home/proj/:/root/app \

-w /root/app maven:3.5.0-jdk-8-alpine \

mvn clean package -Pprod -Dmaven.test.skip=true -pl web -am

docker stop maven

docker rm maven

echo -e '代码编译完成\n========================================'

简单解释:

1、因为我对容器做了命名,所以在开始打包代码之前需要使用docker stop和rm命令停止掉上一次打包的容器maven

2、docker run命令就是启动一个maven容器,使用这个容器进行打包

3、注意到docker run命令中有多个的-v和-w,分别解释一下。

第一个-v的作用是修改成阿里云镜像仓库,这里的/home/mvn-config/目录下仅存放maven的配置文件settings.xml 配置文件可以参考:国内maven仓库地址及修改为阿里云镜像仓库完整配置

第二个-v的作用是指定本地maven仓库的地址,避免每一次都需要重新下载所有jar包

第三个-v的作用是指定打包的项目源代码根目录,其中/home/proj/的部分自行定义,/root/app的部分建议不动,因为这部分跟下方的-w挂钩,-w的作用是指定maven这个容器他的工作目录,也就是他会这个目录下执行mvn clean package那一串打包命令。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值