试图在Windows 10主机上的Docker容器中运行Maven的错误

我试图在Windows主机上的Docker容器中运行maven构build。 构build在OSX上运行正常,但我一直在努力与文件权限等。 我把它从主机上的%userprofile%.m2映射到容器中的/root/.m2。 最初,它无法创build.m2目录(权限被拒绝),所以我手动创build,然后它不能创build里面的库目录,所以我手动创build它,现在我得到这个错误信息:

C:\Users\matt.moran\myproject\dockerbuild>docker run -it -v C:\Users\matt.moran\myproject\dockerbuild/../:/usr/local/build/cdxwww:cached -v C:\Users\matt.moran/.m2:/root/.m2:cached --rm cdxbuild docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting \\\"/C/Users/matt.moran/.m2\\\" to rootfs \\\"/var/lib/docker/overlay2/b42098a7e393129f5da0205ab6bedd94e87840fd1b8002445a9efb040b256fef/merged\\\" at \\\"/root/.m2\\\" caused \\\"stat /C/Users/matt.moran/.m2: input/output error\\\"\"".

我需要做些什么才能做到这一点? 这是文件系统格式的基本问题,还是有一些我可以调整的设置?

发现这个问题是由于Windows不喜欢正斜杠作为文件分隔符 – 从OSX或* nix操作系统移植时出现的问题。

我变了

docker run -it -v C:\Users\matt.moran\myproject\dockerbuild/../:/usr/local/build/cdxwww:cached -v C:\Users\matt.moran/.m2:/root/.m2:cached --rm cdxbuild

docker run -it -v C:\Users\matt.moran\myproject\dockerbuild\..\:/usr/local/build/cdxwww:cached -v C:\Users\matt.moran\.m2:/root/.m2:cached --rm cdxbuild

这治好了这个特殊的错误。 不幸的是,我现在有其他的错误,但他们是由于其他原因。