在使用Jenkins管道构建Docker镜像时,如何解决"无法从docker检索.Id"

fuz*_*zzi 22 jenkins docker dockerfile jenkins-pipeline

我正在使用Jenkins管道来构建Dockerfile.

dockerfile成功完成所有步骤,并创建docker镜像.

如图所示:

Step 16/19 : FROM base AS final
 ---> <id>
Step 17/19 : WORKDIR /app
 ---> Using cache
 ---> <id>
Step 18/19 : COPY --from=publish /app .
 ---> Using cache
 ---> <id>
Step 19/19 : ENTRYPOINT ["", "myapp.dll"]
 ---> Using cache
 ---> <id>
Successfully built cb3y81938e88
Successfully tagged myapp:latest
Run Code Online (Sandbox Code Playgroud)

但是,在此之后,shell失败并出现以下错误:

java.io.IOException: Cannot retrieve .Id from 'docker inspect base AS final'
Run Code Online (Sandbox Code Playgroud)

尽管成功构建了docker镜像,为什么会抛出此错误?当我在本地计算机上执行此命令时,命令退出"成功标记myapp:latest"

我的码头版本是18.03.1-ce.

任何有关这个问题的帮助将不胜感激!

Rob*_*ert 20

似乎Jenkins插件中存在一个错误.

您可以尝试删除多阶段构建名称(" AS final",因为您不需要它):

FROM base
(....)
Run Code Online (Sandbox Code Playgroud)

但是如果你真的需要引用以前构建的图像(多阶段),可以使用一个变通方法--copy-from 0(0,1,2,因为它对应,而不是别名)

詹金斯的相关问题


编辑

在此记录OP发现的解决方案:

我没有使用Jenkinsfile管道文件,而是在Jenkins作业中执行Shell来执行Docker构建命令.(docker build -t latest-build.)

  • 我没有使用Jenkinsfile管道文件,而是在Jenkins作业中执行Shell来执行Docker构建命令. (2认同)