云服务器内容精选

  • 执行命令失败 问题现象 使用Dockerfile制作镜像时,在执行docker build阶段报如下错: exec user process caused "exec format error" 原因分析 此问题出现的原因一般有两个: 制作镜像的基础镜像和执行机不匹配,如:镜像为arm的,但是执行机是x86的。 Dockerfile文件内容从其他地方复制过来时出现问题。 处理方法 先确认镜像和执行机是否匹配,如果镜像是x86的镜像,就只能用x86的执行机。 重新执行构建,查看是否成功,如果不成功,手动输入Dockerfile后再重新执行。
  • 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同级。 方法一:将ADD指令的源文件改为“./target/temp”。 方法二:target目录作为工作目录,将“制作镜像并推送到SWR仓库”构建步骤的工作目录改为“target”,Dockerfile路径改为“../Dockerfile”。
  • 制作镜像时拉取基础镜像失败 使用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”,故出现此错误,请核对并修正镜像版本后重试即可。