当你查看一个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命令的预期行为一致。