在“docker build”命令中,windows“C:/ Users / <username> /”目录不可见

据我所知, docker-machine自动挂载在Windows的C:/Users/<username>目录。 我可以从快速启动terminal访问它作为/c/Users/<username>并对其执行各种操作。

然而,当我从Dockerfile RUN一个命令时, Dockerfile引擎根本无法识别这个挂载的path。
例如我有activator拉链位于:

 /c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip 

以前,我在Dockerfile中使用wget

 RUN wget https://downloads.typesafe.com/typesafe-activator/1.3.10/typesafe-ctivator-1.3.10.zip && unzip typesafe-activator-1.3.10.zip 

现在,因为我已经在文件系统中有这个zip,我想:

 RUN cp /c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip . && unzip typesafe-activator-1.3.10.zip 

但是我得到:

 cp:cannot stat '/c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip': No such file or directory 

任何人都知道如何从主机上的共享文件夹中获取文件到docker构build过程中?

更新这是我完整的Dockerfile

 FROM openjdk:8 ENV PROJECT_WORKPLACE /usr/src RUN mkdir -p $PROJECT_WORKPLACE/activator $PROJECT_WORKPLACE/build $PROJECT_WORKPLACE/app WORKDIR $PROJECT_WORKPLACE/activator COPY . typesafe-activator-1.3.10.zip RUN unzip typesafe-activator-1.3.10 ENV PATH $PROJECT_WORKPLACE/activator/typesafe-activator-1.3.10/activator-dist-1.3.10/bin:$PATH COPY . $PROJECT_WORKPLACE/build WORKDIR $PROJECT_WORKPLACE/build RUN activator clean stage RUN cp -R $PROJECT_WORKPLACE/build/target/universal/stage $PROJECT_WORKPLACE/app EXPOSE 9000 CMD $PROJECT_WORKPLACE/app/stage/bin/docker-play -Dhttp.port=9000 -Dlogger.file=$PROJECT_WORKPLACE/build/logger.xml 

RUN看到Dockerfile上下文

上下文是当前文件夹(Dockerfile所在的位置)及其子文件夹。

docker build命令从Dockerfile和上下文构建一个映像。
构建的上下文是指定位置PATH或URL中的文件。
PATH是本地文件系统上的一个目录。
该URL是Git存储库的位置。

上下文被递归地处理。 所以,一个PATH包含了任何子目录,并且URL包含了存储库及其子模块。

因此,您不需要指定所有路径。

 RUN cp typesafe-activator-1.3.10.zip . && unzip typesafe-activator-1.3.10.zip 

注意:您应该使用COPYADD而不是RUN cp

 COPY typesafe-activator-1.3.10.zip . RUN unzip typesafe-activator-1.3.10.zip 

无论如何,你需要的任何资源应该在Dockerfile的同一文件夹或子文件夹中。

OP的egima使它与以下工作:

 ADD typesafe-activator-1.3.10.zip .