我正在使用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
但是,在此之后,shell失败并出现以下错误:
java.io.IOException: Cannot retrieve .Id from 'docker inspect base AS final'
尽管成功构建了docker镜像,为什么会抛出此错误?当我在本地计算机上执行此命令时,命令退出“成功标记myapp:latest”
我的码头版本是18.03.1-ce .
任何有关这个问题的帮助将不胜感激!
2 回答
根据我的具体情况,我的jenkins有两个节点,主节点和从节点 . 当作业在从属节点上运行时,作业失败 . 在主节点上运行时,作业运行成功 .
如何使用Jenkinsfile在特定节点上运行jenkins作业?例:
似乎Jenkins插件中存在一个错误 .
您可以尝试删除多阶段构建名称(“
AS final
”,因为您不需要它):但是,如果您确实需要引用以前构建的图像(多阶段),则可以使用
--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
Edit
在此记录OP发现的解决方案: