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

如果Docker Pipeline Plugin withRun命令返回非零退出代码,如何使Jenkins构建失败?

李敏学
2023-03-14
问题内容

我正在使用Docker Pipeline插件通过Docker容器执行构建脚本。我注意到,如果让脚本在inside()命令中执行时返回非零退出代码,Jenkins会将管道执行标记为失败。此示例Jenkinsfile演示了这种情况:

docker.image('alpine').inside() {
  sh 'exit 1'
}

但是,如果使用withRun()命令,即使命令显示容器以非零状态退出,类似的Jenkinsfile也 不会 导致构建失败docker ps -l

node() {
  sh 'touch ./test.sh'
  sh 'echo "exit 1" >> ./test.sh'
  sh 'chmod 755 ./test.sh'

  docker.image('alpine').withRun("-v ${WORKSPACE}:/newDir", '/bin/sh /newDir/test.sh') {container ->
    sh "docker logs ${container.id} -f"
    sh 'docker ps -l'
  }
}

withRun()如果容器以非零代码退出,是否有办法使构建失败?


问题答案:

我从withRun()命令中找不到有关退出代码的更多信息,所以我最终只是docker run从一个sh步骤执行了一个命令:

node() {
  sh 'touch ./test.sh'
  sh 'echo "exit 1" >> ./test.sh'
  sh 'chmod 755 ./test.sh'
  sh "docker run --rm -v ${WORKSPACE}:/newDir alpine /bin/sh /newDir/test.sh"
}


 类似资料:
  • 问题内容: 命令失败,并显示退出代码 我删除了衍生数据。我努力了 : 钥匙串访问->右键单击登录->再次锁定并解锁->清除Xcode项目 重新启动机器,无用 尝试归档项目时如何解决“ ”错误。 我正在使用那些图书馆 问题答案: 去 -> -> -> ->

  • 我试图安装一些需要的扩展PHP使用docker。 这是我的Dockerfile: 下面是我得到的错误: 错误: /usr/src/php/ext/mysql不存在 用法:/usr/local/bin/docker php ext install[-jN]ext name[ext name…]ie:/usr/local/bin/docker php ext install gd mysqli/usr

  • 问题内容: 当前(版本10.0)更新到最新版本的Xcode后,该项目无法构建,因为它发现了一些有关“ Command CompileSwift失败,退出代码非零”失败的错误。 我该如何解决这个错误? 它们出现在项目内部使用的大多数Pod中(我使用CocoaPods)。 我尝试将Pod版本和Pod更新到可用的最新版本,但是问题仍然存在。 我在网上搜索了很多内容,关于此问题的信息很少。 问候。 问题答

  • 问题内容: 我的docker文件如下: 当我跑步时: dockerfile中的步骤,直到:按预期成功运行,但是之后我得到了错误: 当我用谷歌搜索错误时,我得到诸如内存不足的建议。但是我已经证实,系统(中心)有足够的内存。 执行期间的命令行输出为: 问题答案: 如前所述,该命令按预期成功运行并报告。 此外,命令“坚持执行”杀死自己并返回退出代码137。此操作的最小更改是将您更新为 这只会强行忽略上一

  • 问题内容: 这个问题已经在这里有了答案 : 子流程check_output返回非零退出状态1 (2个答案) 3年前关闭。 执行以下脚本… […] …导致错误: CalledProcessError:命令’[ping’,’-q’,’-c2’,’-W1’,‘10 .81.3.80’]’返回非零退出状态1 在中添加“ stderr = STDOUT”不会产生任何有用的反馈。 如何获取有关该错误的更多信息

  • 因此,我试图在Dockerfile中安装OpenJDK,但遇到了一些问题。它总是以以下消息出错:,然后在。这是执行失败的命令。目前在Ubuntu 20.04VM上 这是一个用5.0编写的Visual Studio项目,需要执行一个。jar文件。这些似乎没有帮助:apt-get update'返回了一个非零代码:100,Docker File非零代码100错误。最好是Java13,但这个问题阻止了我