Docker构建报错ADD failed 文件不在构建上下文或被.dockerignore排除如何解决
Docker构建时COPY文件不存在问题的解决方案
错误根因
你执行docker build命令时末尾的.代表将当前工作目录作为构建上下文,Docker在构建过程中只能访问该上下文范围内的文件。你Dockerfile中写的/opt/git/files/zabbix-sender.deb是主机的绝对路径,不在构建上下文目录内,所以Docker无法读取到该文件。
可行解决方案
- 方案1:调整构建上下文
先修改Dockerfile中的COPY指令,改为相对构建上下文的路径:
切换到COPY files/zabbix-sender.deb /tmp//opt/git目录下执行构建命令:docker build -f ./df/Dockerfile-zabbix-checkDNS -t image-zabbix-checkdns:1.0 . - 方案2:移动文件到当前构建上下文
如果你要保持当前执行build命令的工作目录不变,将/opt/git/files/zabbix-sender.deb复制到你当前执行命令的目录下,再修改Dockerfile的COPY指令为:
再执行原有build命令即可。COPY zabbix-sender.deb /tmp/ - 方案3:检查.dockerignore规则
若确认文件已经在构建上下文路径内,检查上下文根目录下的.dockerignore文件,确认没有配置过滤zabbix-sender.deb或者其所在目录的规则,若有则删除对应规则后重新构建即可。
内容的提问来源于stack exchange,提问作者El Anbari Rachid
相关产品推荐
相关产品推荐

