首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows "C:/Users/<username>/“目录在` `docker‘命令中不可见

windows "C:/Users/<username>/“目录在` `docker‘命令中不可见
EN

Stack Overflow用户
提问于 2016-09-20 08:20:04
回答 1查看 176关注 0票数 1

据我所知,docker-machine会自动在windows中挂载C:/Users/<username>目录。我能够以/c/Users/<username>的形式从快速启动终端访问它,并对其执行各种操作。

但是,当我从RUN内部发出命令时,停靠引擎根本不识别这个挂载路径。

例如,我的activator zip位于:

代码语言:javascript
复制
/c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip

以前,我在Dockerfile中使用了Dockerfile

代码语言:javascript
复制
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,所以我想:

代码语言:javascript
复制
RUN cp /c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip . && unzip typesafe-activator-1.3.10.zip

但我明白:

代码语言:javascript
复制
cp:cannot stat '/c/Users/someuser/somefolder/typesafe-activator-1.3.10.zip': No such file or directory

谁知道如何将文件从主机上的共享文件夹中获取到docker构建过程?

更新这里是我的完整Dockerfile

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-20 08:32:32

运行时会看到Dockerfile上下文

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

docker build命令从Dockerfile和上下文生成图像。 生成的上下文是位于指定位置、路径或URL的文件。 路径是本地文件系统上的一个目录。 URL是Git存储库的位置。 上下文是递归处理的。因此,路径包括任何子目录,URL包括存储库及其子模块。

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

代码语言:javascript
复制
RUN cp typesafe-activator-1.3.10.zip . && unzip typesafe-activator-1.3.10.zip

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

代码语言:javascript
复制
COPY typesafe-activator-1.3.10.zip .
RUN unzip typesafe-activator-1.3.10.zip

在任何情况下,您需要的任何资源都应该位于Dockerfile的同一个文件夹或子文件夹中。

欧吉马让它与以下内容一起工作:

代码语言:javascript
复制
ADD typesafe-activator-1.3.10.zip .
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39589006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档