我们的集成测试运行在jenkins(带有docker插件)和selenium上。当测试失败时,我们希望容器仍在运行,以便我们检查情况。为了防止容器停止,我们有一个脚本在出现问题时在作业结束时运行无限循环。
当测试通过时,循环不运行,工作正常。当测试失败时,容器仍在运行,这是好的,但作业将永远运行。我们必须中止这项工作,但测试不会被标记为失败。
所以我想知道是否可以向失败的测试发送信号以打破循环并正常结束测试?抱歉这个讽刺。感谢您阅读我的问题。
答案 0 :(得分:1)
您可以使用docker kill
向正在运行的容器发送信号。
# docker kill --help
Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
Kill a running container
--help=false Print usage
-s, --signal=KILL Signal to send to the container
例如,有一个名为jenkins
的正在运行的容器。
命令为docker kill --signal=SIGTERM jenkins
注意:容器中只有一个pid = 1的进程可以接收此信号。