当你查看Dockerfile for a maven build时,它包含了一行:
VOLUME /root/.m2
如果这是我的.m2
存储库在我的mac上的位置,那就太好了-但它不是-它在
/Users/myname/.m2
现在我可以做:
但是Docker中的linux实现不知道去那里看。我想把linux的位置Map到mac的位置,并把它作为我的vagrant init
的一部分。就像是:
ln /root/.m2 /Users/myname/.m2
我的问题是:如何将Docker镜像指向我的。m2目录用于在mac上的docker中运行maven?
4条答案
按热度按时间6l7fqoea1#
如何将Docker镜像指向我的。m2目录用于在mac上的docker中运行maven?
您宁愿指向一个主机文件夹(如/Users/myname/)。m2)到 container 文件夹(不是图像)
请参阅“将主机目录装载为数据卷”:
除了使用
-v
标志创建卷外,您还可以将Docker守护程序主机上的目录挂载到容器中。此命令将主机目录
/Users/myname/.m2
装入/root/.m2
处的容器。如果路径
/root/.m2
已经存在于容器映像中,/Users/myname/.m2
挂载会覆盖但不会删除预先存在的内容。一旦移除装载,就可以再次访问内容。
这与mount命令的预期行为一致。
jhiyze9q2#
分享。m2文件夹中,您可以覆盖设置中的localRepository值。xml文件。
这是我用来分享我的本地的Dockerfile片段。docker中的m2仓库。
xbp102n03#
下面是Dockerfiles和docker-compose示例项目,包含一个Spring服务和任何其他服务;
Spring服务dockerfile
docker-compose.yml
在docker-compose中,我们为本地用户制作卷。M2回购和容器1。
xhv8bpkk4#
我使用
maven:3-amazoncorretto-17
作为我的基本图像。利用Arun A's answer中的一些信息,我能够提出一个非常简单的解决方案。(对我来说)棘手的部分是弄清楚设置在哪里。XML需要进入容器。此外,本示例仅安装
settings.xml
。使用
docker-compose
:或
docker run -v
此语法应适用于Windows和Mac。