Dockerfile ADD命令报错:no such file or directory

Spring89 2019-12-18 06:26:54
在通过docker build 构建镜像时,总是报没有这个目录no such file or directory,但实际上已经通过mkdir命令创建了这个目录。感觉很奇怪,希望有高手能帮忙分析下,谢谢!
以下是Dockerfile文件,很简单的命令就是构建一个redis

FROM centos

RUN mkdir /usr/local/redis

ADD /temp/redis-5.0.7.tar.gz /usr/local/redis #拷贝源码包,并解压

RUN yum install -y gcc gcc-c++ net-tools make

WORKDIR /usr/local/redis/src/ #切换目录

RUN make && make install

COPY redis-master.conf . #拷贝配置文件

EXPOSE 6379 #指定监听端口

CMD ["redis-server","redis-master.conf"] #容器启动后,启动redis服务


出错的信息:
ADD failed: stat /var/lib/docker/tmp/docker-builder994178559/usr/local/redis: no such file or directory

...全文
2027 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mouse_zhu 2019-12-24
  • 打赏
  • 举报
回复 1
这个啊。这是因为ADD 只能在当前上下文使用,也就是说只能在dockerfile存在的目录使用。 ADD redis-5.0.7.tar.gz /usr/local/redis
Spring89 2019-12-24
  • 打赏
  • 举报
回复
引用 1 楼 mouse_zhu 的回复:
镜像内没有这个目录。要mkdir
不是这个问题,在上面已经mkdir了,问题是ADD没有自动解压,换成COPY,然后在tar解压就没问题。不知道为什么没有自动解压。
mouse_zhu 2019-12-23
  • 打赏
  • 举报
回复
镜像内没有这个目录。要mkdir
moxiaoran5753 2022-01-20
  • 举报
回复
@mouse_zhu ADD命令 如果目标路径不存在,不是会自动创建的吗

1,162

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧