【发布时间】:2016-09-20 08:20:04
【问题描述】:
据我所知,docker-machine 会在 windows 中自动挂载C:/Users/<username> 目录。我能够以/c/Users/<username> 的身份从快速启动终端访问它并对其执行各种操作。
但是,当我从 Dockerfile 内部 RUN 发出命令时,docker 引擎根本无法识别此安装路径。
例如我有activator zip 位于:
/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 构建过程中吗?
更新
这是我完整的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
【问题讨论】: