如何将docker容器上的错误冒泡到主机中的jenkins

时间:2018-04-19 12:09:56

标签: docker jenkins error-handling

我需要知道如何将docker容器上的错误冒泡/处理到主机中的jenkins,最好的方法是什么?

我只能使用docker或者我需要使用docker-compose吗?

如果在其中运行的代码失败,我怎么能告诉docker抛出失败的退出代码?

示例:

我想在jenkins中运行一个使用nodeJs运行脚本的docker镜像。 如果此脚本因退出代码1而失败,我需要Jenkins使构建失败。

由于

2 个答案:

答案 0 :(得分:1)

您好了解有关docker和CMD命令中退出代码的信息。我能够在启动我的docker容器的bash脚本中使用set -e将多个docker容器中的所有错误抛给jenkins。 如果任何容器以非零退出代码失败,则脚本将停止当前执行,并且jenkins将捕获退出代码,以跟随下一个docker容器执行。

答案 1 :(得分:0)

我在这里也遇到过类似的情况。我在Jenkins Build步骤中创建了一个Execute Shell,并放置了以下脚本:

docker exec ${CONTAINER_NAME}

if [[ $? -eq 0 ]]; then
   docker stop ${CONTAINER_NAME}
   exit 0 # success
else
   docker stop ${CONTAINER_NAME}
   exit 1 # fail

$?”读取最后执行的命令的退出状态。函数返回后,“ $?”给出函数中最后执行的命令的退出状态。这是Bash赋予函数“返回值”的方式。

来源:https://www.tldp.org/LDP/abs/html/exit-status.html