windows系统中 dockerfile COPY failed: stat /var/lib/docker/tmp/docker-builder
在windows系统中build dockerfile时,build命令:docker build -t 6174274223241224/activemq:temp -f E:\activemq .报错:Step 4/15 : COPY E:\packages\jdk-8u221-linux-x64.tar.gz /homeCOPY failed: stat /var/li...
·
在windows系统中build dockerfile时,
build命令:
docker build -t 6174274223241224/activemq:temp -f E:\activemq .
报错:
Step 4/15 : COPY E:\packages\jdk-8u221-linux-x64.tar.gz /home
COPY failed: stat /var/lib/docker/tmp/docker-builder125604886/E:packagesjdk-8u221-linux-x64.tar.gz: no such file or directory
出现这个现象的问题是,copy的源文件没有加载到上下文context中。命令中最后的“.”表示打包的上下文,所有需要copy的包需要放在当前目录下,这样docker在打包镜像时会将该路径下的所有文件加载到/var/lib/docker/tmp/docker-builder***下,这样就会加载成功。下面是修改示例:
activemqfile是要构建的dockerfile
activemqfile:
# This my first activemq Dockerfile
# Version 1.0
# Base images 基础镜像
FROM centos
#MAINTAINER 维护者信息
MAINTAINER tangjianghua
#安装epel源
RUN yum install -y epel-release \
#把服务器的包信息下载到本地电脑缓存起来
yum makecache
#copy
COPY packages/jdk-8u221-linux-x64.tar.gz /home
#RUN 执行以下命令
RUN cd /home && tar -zxvf jdk-8u221-linux-x64.tar.gz
#创建路径,移动jdk到/usr/java
RUN mkdir /usr/java && mv /home/jdk1.8.0_221 /usr/java
#备份profile
RUN cp /etc/profile /etc/profile.bak
#ENV 设置环境变量
ENV JAVA_HOME /usr/java/jdk1.8.0_221
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib
#copy activemq包
COPY packages/apache-activemq-5.15.9-bin.tar.gz /home
#进入data 解压activemq 重命名为activemq
RUN cd /home/ && tar -xvf apache-activemq-5.15.9-bin.tar.gz
#创建log文件软连接,方便查看
RUN ln -s /home/apache-activemq-5.15.9/data/activemq.log /root/activemq.log
#启动activemq
ENTRYPOINT /home/apache-activemq-5.15.9/bin/activemq start && /bin/bash
#暴露端口
EXPOSE 61616 8161
然后在该目录下build镜像:
E:\docker\dockerfiles\activemq>docker build -t 6174274223241224/activemq:temp -f activemqfile .
更多推荐
已为社区贡献2条内容
所有评论(0)