当前位置: 首页 > 面试题库 >

使用Jenkins管道构建Docker映像时,如何解决“无法从Docker检索.Id”

佘茂才
2023-03-14
问题内容

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

泊坞窗文件成功完成所有步骤,并创建了泊坞窗映像。

如图所示:

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

但是,此后,shell失败并显示以下错误:

java.io.IOException: Cannot retrieve .Id from 'docker inspect base AS final'

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

我的Docker版本是18.03.1-ce。

在这个问题上的任何帮助将不胜感激!


问题答案:

该Jenkins插件似乎存在一个错误。

您可以尝试删除多阶段构建名称(AS final不需要时使用“ “”):

FROM base
(....)

但是,如果您确实需要引用以前构建的映像(多阶段),则可以使用一种解决方法--copy-from 0(对应于0,1,2,而不是别名)

詹金斯中的相关问题

  • https://issues.jenkins-ci.org/browse/JENKINS-44789
  • https://issues.jenkins-ci.org/browse/JENKINS-44609
  • https://issues.jenkins-ci.org/browse/JENKINS-31507

编辑

在此处记录OP找到的解决方案

我通过不使用Jenkinsfile管道文件来工作,而是在Jenkins作业中执行Shell来执行Docker build命令。(docker build
-t Latest-build)



 类似资料:
  • 问题内容: 我正在使用Jenkins管道来构建Dockerfile。 泊坞窗文件成功完成所有步骤,并创建了泊坞窗映像。 如图所示: 但是,此后,shell失败并显示以下错误: 尽管成功构建了docker镜像,为什么仍会引发此错误?当我在本地计算机上执行此命令时,命令在“成功标记myapp:latest”上退出 我的Docker版本是18.03.1-ce。 在这个问题上的任何帮助将不胜感激! 问题答

  • 问题内容: 通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“ SCM管道”设置为。您可以检查我的GitHub存储库: 我想使用Jenkins管道构建docker映像。这是Jenkinsfile: Dockerfile也非常简单: 当我运行项目时。我收到以下错误: 这是完整的控制台输出 我检查了工作区: 测试 目录中什么都没有,但是Jenkinsfile和Dockerfile都在 test

  • 通过使用jenkins,我创建了一个“管道”类型的项目。我设置了“来自SCM的管道”来获取< code>Jenkinsfile。你可以查看我的GitHub库: 我想使用 Jenkins 管道来构建一个 docker 映像。以下是 Jenkinsfile: Dockerfile文件也非常简单: 当我运行这个项目时。我得到以下错误: 这是完整的控制台输出 我检查了工作区: 测试目录中没有任何内容,但J

  • 问题内容: 我有一个Jenkins作为docker容器运行,现在我想使用管道构建Docker映像,但是Jenkins容器总是告诉未找到Docker。 这是我运行詹金斯图像的方式: Jenkins映像的DockerFile是:https : //github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock

  • 我是Docker和Jenkins的新手,我正在尝试创建一个Jenkins管道来构建Docker的形象。我在尝试构建时遇到了问题,并不断收到此错误: /var/jenkins_home/workspace/Docker-Pipeline@tmp/耐用-a11b32f8/脚本。sh:第1行:docker:未找到命令 我已经在虚拟机上安装了ubuntu 我正在做和他完全一样的事情,但总是失败。

  • 我有一个Jenkins作为docker容器运行,现在我想使用管道构建docker映像,但Jenkins容器总是告诉docker not found。 以下是我如何运行我的詹金斯形象: Jenkins图像的DockerFile是:https://github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock