加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

缓存基于Maven的Docker构建的Jar依赖项

发布时间:2020-12-16 03:52:26 所属栏目:安全 来源:网络整理
导读:我正在从这个Dockerfile构建一个Docker镜像: FROM maven:3.3.3-jdk-8MAINTAINER Mickael BARON ADD pom.xml /work/pom.xmlWORKDIR /workRUN mvn dependency:go-offline --fail-neverADD ["src","/work/src"]RUN ["mvn","package"] 使用这个Dockerfile,我强

我正在从这个Dockerfile构建一个Docker镜像:

FROM maven:3.3.3-jdk-8
MAINTAINER Mickael BARON  

ADD pom.xml /work/pom.xml
WORKDIR /work
RUN mvn dependency:go-offline --fail-never

ADD ["src","/work/src"]
RUN ["mvn","package"]

使用这个Dockerfile,我强制在打包Java项目之前下载依赖项.因此,每次从src目录更改文件时,我都不必重新下载依赖项.

但是,有一个问题,这个问题取决于Maven的版本(基本图像).实际上,下载了依赖项,但它们不会持久保存到容器的?/ .m2目录中.它是空的.因此,当我更改一些源文件时,所有依赖项都被重载.

但是,我注意到如果我从基本图像更改Maven的版本(例如FROM maven:3.2.5-jdk-8),它就可以了.

很奇怪,不是吗?

有关此主题的新指令:
https://github.com/carlossg/docker-maven#packaging-a-local-repository-with-the-image

The $MAVEN_CONFIG dir (default to /root/.m2) is configured as a volume so anything copied there in a Dockerfile at build time is lost. For that the dir /usr/share/maven/ref/ is created,and anything in there will be copied on container startup to $MAVEN_CONFIG.

To create a pre-packaged repository,create a pom.xml with the dependencies you need and use this in your Dockerfile. /usr/share/maven/ref/settings-docker.xml is a settings file that changes the local repository to /usr/share/maven/ref/repository,but you can use your own settings file as long as it uses /usr/share/maven/ref/repository as local repo.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读