这是在网络上进行初始解决方案搜索后的原始命令。我尝试了使用斜杠(/)的各种组合:徒劳:
winpty docker run –privileged –rm -it -v’// c // temp // git // …
在Windows上使用docker充满了与路径有关的问题。看起来你正在摔倒其中一个兔子洞。假设.gradle是一个目录(它在我的机器上)
我解决这个问题的方法是使用docker卷:卷与您当前使用的驱动器映射不同,因为文件不会出现在主机文件系统上,但它们在容器执行期间是持久的,这通常就足够了。例如,我有我的 .git 安装在卷中的目录,我安排我的所有开发工具来挂载该卷以获取源。如果您需要在docker之外访问这些文件,那么卷可能很难,但是,例如,在您的示例中,您只在容器内使用gradle而从不在主机上使用gradle,那么您可以将.gradle目录映射到卷并简单地在不同容器中重复使用它。
.git
在您执行此操作之前,最好使用以下内容显式创建卷:
docker volume create gradle
有各种技术可以隐式创建卷,但就个人而言,我喜欢明确,因为最少惊喜的原则。
安装卷的语法类似于上面使用的语法,但我们只是在音量开关的左侧命名音量:
docker container run -it --rm -v gradle:/root/.gradle/ ...
但是,您的docker run命令可能还有另一个问题。最后,您传递字符串 './gradlew' 。您假设这是在工作目录中,如果工作目录不是您认为的那样,这可能是一个问题。为确保不会发生这种情况,您应该使用以下命令说明工作目录 -w <dir> 开关。就像是:
'./gradlew'
-w <dir>
docker container run -it --rm -w /root /v gradle:/root/.gradle/