问题描述:该问题是在构建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/