我正在使用Jenkins运行命令docker kill $(docker ps -aq)
,但是失败了,因为如果没有正在运行的Docker容器-$(docker ps -aq)
的输出将为0,这将使docker kill
命令失败并且jenkins作业将失败。
如何预防?
在想类似的东西:
if ( $(docker ps -aq) > 0)
then docker kill $(docker ps -aq)
fi
,但是语法似乎无法正常工作。
这里有什么好的方法? 谢谢。
答案 0 :(得分:1)
最简单的方法可能是使用 xargs (1)将标准输出从docker ps
转换为到docker kill
的命令行参数。如果没有任何参数,它将不会运行该命令;如果单个命令行上的参数过多,则它将多次运行。
docker ps -aq | xargs docker kill
答案 1 :(得分:0)
它应该可以在Linux系统上运行:
if [[ $(docker ps -aq) -gt 0 ]]; then
docker kill $(docker ps -aq)
else
echo "There is no docker container running"
fi
或者您可以将-gt
更改为!=
。