如何将一个docker映像指向我的.m2目录,以便在mac上的docker中运行maven?

当你查看一个Maven构build的Dockerfile时,它包含以下行:

VOLUME /root/.m2 

现在这将是伟大的,如果这是我的.m2存储库在我的mac – 但它不是 – 它在

 /Users/myname/.m2 

现在我可以这样做:

但是,Docker中的linux实现不知道在那里。 我想将linux的位置映射到mac位置,并将其作为我的vagrant init一部分。 就像:

 ln /root/.m2 /Users/myname/.m2 

我的问题是: 如何将泊坞窗图像指向我的.m2目录,以便在mac上的docker上运行maven

如何将一个docker映像指向我的.m2目录,以便在mac上的docker中运行maven?

您宁愿将主机文件夹(如/Users/myname/.m2)指向容器文件夹(而不是图像)

请参阅“ 将主机目录挂载为数据卷 ”:

除了使用-v标志创建一个卷外,你还可以从你的Docker守护进程的主机挂载一个目录到一个容器中

 $ docker run -d -P --name web -v /Users/myname/.m2:/root/.m2 training/webapp python app.py 

该命令将主机目录/Users/myname/.m2挂载到/root/.m2的容器中。
如果/root/.m2路径已经存在于容器的映像中,/用户/ /Users/myname/.m2挂载覆盖,但不删除预先存在的内容。
一旦挂载被删除,内容可以再次访问。
这与mount命令的预期行为一致。