当您查看Maven构建的Dockerfile时,其中包含以下行:
VOLUME /root/.m2
现在,如果这是我的.m2存储库在我的Mac上的位置,那将是很棒的-但事实并非如此-它在
.m2
/Users/myname/.m2
现在我可以做:
但是后来Docker中的Linux实现不知道在那儿看。我想将linux位置映射到mac位置,并将其作为我的一部分vagrant init。就像:
vagrant init
ln /root/.m2 /Users/myname/.m2
我的问题是: 如何将docker映像指向.m2目录,以便在Mac上的docker中运行maven?
如何将docker映像指向.m2目录,以便在Mac上的docker中运行maven?
您宁愿将主机文件夹(例如/Users/myname/.m2)指向 容器 文件夹(而不是映像)
请参阅“ 将主机目录挂载为数据卷 ”:
除了使用该-v标志创建卷之外,还可以 将Docker守护程序主机的目录挂载到容器中 。
-v
$ 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命令的预期行为一致。
/root/.m2