我需要知道如何将docker容器上的错误冒泡/处理到主机中的jenkins,最好的方法是什么?
我只能使用docker或者我需要使用docker-compose吗?
如果在其中运行的代码失败,我怎么能告诉docker抛出失败的退出代码?
示例:
我想在jenkins中运行一个使用nodeJs运行脚本的docker镜像。 如果此脚本因退出代码1而失败,我需要Jenkins使构建失败。
由于
答案 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赋予函数“返回值”的方式。