maven镜像制作
故事背景:
需要在客户现场部署测试demo,由于部署环境不提供外网环境,应用所需依赖无法通过外网下载。
初步的解决方案,在本地起一个maven的容器,将代码copy到maven的容器内,进行打包操作,生成缓存,再将容器commit成新的Maven镜像。
实施过程:
1.现在本地拉一个maven的镜像并生成容器
2.通过docker copy 将代码复制到容器中,并通过mvn 命令打包
3.通过docker commit 将生成的容器打包成新的镜像。
注意:
重点来了,上述过程尝试了无数遍,发现缓存并没有被commit进新的镜像。
罪魁祸首就是它。没错,这个目录是通过Volumes挂载进去的......说点什么好呢......
看来这个方案不可用!就到此结束这篇微博吧......浪费大家这么多时间......
开玩笑的,不过当时我确实蛮绝望的。然后就想到了以下这个很dirty的办法:
找到maven的settings.xml文件,然后把默认的本地缓存目录改掉:
比如改成这样,然后重复上面第二第三步的操作就搞定了。
当然这是个临时的解决方案,从长远的角度上来讲,这是个不靠谱的方法。
那么有什么靠谱的办法呢:比如搭建一个nexus,artifactory等这类的本地仓库。
相关文章:
Centos 7 通过yum的方式安装配置Artifactory 5.10
sonatype Nexus3 install on Kubernetes