当前位置: 代码迷 >> 综合 >> 【问题解决】stat /var/lib/docker/tmp/docker-builder258037372/xx/xx/xx/default.conf: no such file or direct
  详细解决方案

【问题解决】stat /var/lib/docker/tmp/docker-builder258037372/xx/xx/xx/default.conf: no such file or direct

热度:90   发布时间:2024-01-31 22:12:26.0

问题描述:该问题是在构建vue项目镜像的过程中出现的,详细报错如下

ADD failed: stat /var/lib/docker/tmp/docker-builder258037372/xx/xx/xx/default.conf: no such file or directory

错误原因:

出现这个问题的根本原因在要ADD源文件没有加载到上下文context中,或者加入的路径不对。使用docker build命令构建镜像的时候Dockerfile中ADD命令后的源文件取的是当前路径下的,比如default.conf就放在运行docker build命令的目录下,则ADD命令后应该使用相对路径,若使用绝对路径就会导致上下文路径不对报错。

# 构建镜像过程中ADD(或COPY)命令后的源文件会拼接到如下的上下文中
/var/lib/docker/tmp/docker-builderxxx/+源文件位置

本人在dockerfile文件中键入错误指令如下

#在目标文件存在目录下运行docker build命令,docker在运行ADD指令的时候会在/var/lib/docker/tmp/docker-builderxxx/xx/xx/xx/路径下找default.conf文件,而实际上default.conf文件不在这个路径下,真正的位置在 /var/lib/docker/tmp/docker-builderxxx/default.conf
ADD /xx/xx/xx/default.conf /etc/nginx/conf.d/

问题解决:

#使用dockerfile存在目录,要使用的源文件相对路径,比如dockerfile文件在/A路径下,源文件a.conf也在/A路径下,则直接ADD a.conf  ... 即可,若a.conf在/A/B路径下,则ADD指令后源文件位置应为/B/a.conf
ADD default.conf /etc/nginx/conf.d/
  相关解决方案