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 /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 .

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值