更新时间:2024-10-09 GMT+08:00
使用Dockerfile制作镜像失败
使用步骤“制作镜像并推送到SWR”或“执行Docker命令”制作镜像时,docker build阶段可能会制作镜像失败,可参考各场景对应解决方案处理:
COPY或者ADD指令找不到文件
问题现象
构建任务中有“制作镜像并推送SWR”或“执行Docker命令”构建步骤,执行任务时日志报如下异常信息:
ADD failed: stat /var/lib/docker/tmp/docker-builder154037010/temp: no such file or directory [ERROR][制作镜像并推送到SWR仓库]:错误信息:DEV.CB.0210043,制作Docker镜像失败。
COPY failed: stat /var/lib/docker/tmp/docker-builder076130522/test.txt: no such file or directory
原因分析
ADD指令的源文件为“./temp”,而当前工作目录下没有temp文件。
处理方法
假设当前目录的结构如下:
+ target - temp - Dockerfile
target目录下有temp文件,而Dockerfile文件和target同级。
制作镜像时拉取基础镜像失败
使用Dockerfile制作镜像时,如果指定的基础镜像参数有误,会导致镜像拉取失败,主包括以下两个场景:
- 指定的镜像不存在或无权限
pull access denied for java1, repository does not exist or may require 'docker login'
分析处理
镜像仓库中找不到指定的镜像或当前用户对该镜像没有pull权限时,会出现该错误。
此例的Dockerfile中,FROM java1:8ull-jdk-alpine命令指定的镜像“java1”无法在镜像仓库中找到,故出现此错误,请核对并修正镜像名后重试即可。
- 指定的镜像标签不存在
manifest for java:8ull-jdk-alpine not found
分析处理
镜像仓库中存在指定镜像,但不存在镜像的对应版本/标签时会出现“manifest not found”错误。此例的Dockerfile中,FROM java:8ull-jdk-alpine命令指定了镜像“java:8ull-jdk-alpine”,镜像仓库中存在“java”镜像,但没有对应的版本/标签“8ull-jdk-alpine”,故出现此错误,请核对并修正镜像版本后重试即可。
父主题: 镜像问题